1. 内容回顾
JavaScript语法基础
1. 引入方式
1. 在script标签中直接写
2. 写在单独的JS文件中,经过script标签的src属性来导入
2. 变量
1. 命名规则: 字母\数字\下划线和$组成,数字不能开头
2. 声明变量: 要用var 关键字
3. 动态类型: 同一个变量能够保存不一样类型的数据
3. 数据类型
1. 数字类型(number类型)
1. 100
2. 11.11
3. NaN(not a number)
2. 字符串类型(string类型)
1. 内置的属性和方法
.length
...
parseInt("100") --> 获得number类型的100
parseFloat("11.11") --> 获得number类型的11.11
3. 布尔类型(boolean类型)
true和false
""\0\null\undefined\NaN都是假
4. 数组(array)
["alex", 18]
经常使用属性和方法
数组的遍历:
for (var i=0;i<a.length;i++){
console.log(i, a[i]);
}
5. null和undefined
null: 表示值为空,多在手动清空一个变量的时候使用
undefined: 声明了一个变量可是没有给它赋值时,它就是undefined
函数没有返回值的话默认返回的是undefined
(卫生纸的例子)
6. typeof 判断变量类型
typeof "123" --> string
typeof 123 --> number
typeof true --> boolean
typeof null --> object
typeof undefined --> undefined
typeof [11, 33] --> object
7. 运算符
算术运算符 +-*/ ++ -- %
逻辑运算符 && || !
比较运算符 > >= < <= == != === !==
null == undefined --> true
null === undefined --> false
赋值运算符 = -= += *= /=
8. 流程控制
1. if else
2. if(){...}else if(){...}else{...}
3. while(){...}
4. switch (today){
case 1:
...
break;
case 2:
...
break;
default:
...
}
5. for (条件){...}
6. 三运运算
var x = 10;
var y = 20;
var a = x>y?x:y Python中:a = x if x > y else y
9. 函数
1. 三种定义方式
1. function func(a,b){...}
2. var sum = function (a,b){...}
3. (function(a,b){...})(10, 20)
2. 函数的传参没有限制
在函数体内部经过arguments对象
arguments.length
3. 全局变量和局部变量
函数体内部定义的是局部变量,函数执行完以后就销毁(删除)
所有变量在窗口关闭以后销毁(删除)
4. 做用域
函数执行的时候必定要回头看函数的定义阶段
5. 词法分析(了解便可)
在真正执行代码以前,会先进行词法分析!!!
词法分析会生成一个AO对象!!!
三条规则:
1. 看有没有函数参数
2. 看有没有局部变量声明
3. 看有没有函数声明
2. 面试题:
3. 内置对象和方法
1. 内置对象介绍
2. Date对象
1. 如何建立一个Date对象
2. Date对象的经常使用方法
3. RegExp
注意三个坑
4. Math
跟数学相关的方法
4. JS
1. JS语法基础
2. BOM --> 操做浏览器
window对象
location.href --> 获取当前的网址
location.href="http://www.sogo.com" --> 跳转到指定的网址
location.reload() --> 从新加载当前页
多少毫秒以后执行
var t = setTimeout(f,5000)
clearTimeOut(t)
每隔多少毫秒以后执行
var t = setInterval(f,5000)
clearInterval(t)
3. DOM --> 操做文档(HTML\CSS)
3. 做业:
1. 整理今日课上内容的博客(笔记)
2. CSS小米商城的做业继续写
3. 预习DOM内容:http://www.cnblogs.com/liwenzhou/p/8011504.htmlhtml
课上截图:面试
1 字符串的俩种写法:就是图中的两个方法正则表达式
js内置方法介绍:json
js自定义对象:数组
便利对象中内容:(同Python字典相似)浏览器
json类型之间的互相转化。dom
var str1 = '{"name": "Alex", "age": 18}'; var obj1 = {"name": "Alex", "age": 18}; // JSON字符串转换成对象 var obj = JSON.parse(str1); // 对象转换成JSON字符串 var str = JSON.stringify(obj1);
js正则表达式:函数
//RegExp对象测试
//建立正则对象方式1
// 参数1 正则表达式(不能有空格)
// 参数2 匹配模式:经常使用g(全局匹配;找到全部匹配,而不是在第一个匹配后中止)和i(忽略大小写)htm
// 用户名只能是英文字母、数字和_,而且首字母必须是英文字母。长度最短不能少于6位 最长不能超过12位。
// 建立RegExp对象方式(逗号后面不要加空格)
var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");
// 匹配响应的字符串
var s1 = "bc123";
//RegExp对象的test方法,测试一个字符串是否符合对应的正则规则,返回值是true或false。
reg1.test(s1); // true
// 建立方式2
// /填写正则表达式/匹配模式(逗号后面不要加空格)
var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/;
reg2.test(s1); // true
// String对象与正则结合的4个方法
var s2 = "hello world";
s2.match(/o/g); // ["o", "o"] 查找字符串中 符合正则 的内容
s2.search(/h/g); // 0 查找字符串中符合正则表达式的内容位置
s2.split(/o/g); // ["hell", " w", "rld"] 按照正则表达式对字符串进行切割
s2.replace(/o/g, "s"); // "hells wsrld" 对字符串按照正则进行替换
// 关于匹配模式:g和i的简单示例
var s1 = "name:Alex age:18";
s1.replace(/a/, "哈哈哈"); // "n哈哈哈me:Alex age:18"
s1.replace(/a/g, "哈哈哈"); // "n哈哈哈me:Alex 哈哈哈ge:18" 全局匹配
s1.replace(/a/gi, "哈哈哈"); // "n哈哈哈me:哈哈哈lex 哈哈哈ge:18" 不区分大小写
// 注意事项1:
// 若是regExpObject带有全局标志g,test()函数不是从字符串的开头开始查找,而是从属性regExpObject.lastIndex所指定的索引处开始查找。
// 该属性值默认为0,因此第一次仍然是从字符串的开头查找。
// 当找到一个匹配时,test()函数会将regExpObject.lastIndex的值改成字符串中本次匹配内容的最后一个字符的下一个索引位置。
// 当再次执行test()函数时,将会从该索引位置处开始查找,从而找到下一个匹配。
// 所以,当咱们使用test()函数执行了一次匹配以后,若是想要从新使用test()函数从头开始查找,则须要手动将regExpObject.lastIndex的值重置为 0。
// 若是test()函数再也找不到能够匹配的文本时,该函数会自动把regExpObject.lastIndex属性重置为 0。
var reg3 = /foo/g;
// 此时 regex.lastIndex=0
reg3.test('foo'); // 返回true
// 此时 regex.lastIndex=3
reg3.test('xxxfoo'); // 仍是返回true
// 因此咱们在使用test()方法校验一个字符串是否彻底匹配时,必定要加上^和$符号。
// 注意事项2(说出来你可能不信系列):
// 当咱们不加参数调用RegExpObj.test()方法时, 至关于执行RegExpObj.test("undefined"), 而且/undefined/.test()默认返回true。
var reg4 = /^undefined$/;
reg4.test(); // 返回true
reg4.test(undefined); // 返回true
reg4.test("undefined"); // 返回true
math 方法:
js dom
dom 定时器:
隔一段时间执行,注意特别费内存,若是多了的话。