js3读书笔记
第二章
1、延迟脚本defer
<script>元素中设置defer属性,相当于告知浏览器立即下载但是延迟执行,仅适用于外部文件。把延迟脚本放在页面底部仍然是最佳选择。
2、异步脚本async
立即下载但是不能按照顺序执行
3、<noscript>元素
在不支持js的浏览器中显示替代的内容
第三章
1、区分大小写、驼峰命名
2、标识符
1、第一个字符必须是字母、下划线、$符
3、isNaN();
接受一个数值,会尝试将这个值转为数值,某些不是数值的值会直接转换为数值。
4、Number()
5、parseInt()
6、toString()
7、String()
8、一元操作符(++,--)
9、一元加减操作符(+,-)
10、valueof()
11、位操作符
12、按位非(~)
按位非是数值的负值减一
13、按位与(&)
14、按位或(|)
15、按位异或(^)
16、左移(<<)
17、有符号右移 (>>)
18、无符号右移(>>>)
数值的正负是有很大区别的
19、布尔操作符
- 逻辑非(!)
- 逻辑与(&&)
- 逻辑或(||)
20、乘性操作符(*)
21、除法(/)
22、求模(%)
23、加性操作符(+)
24、减法(-)
25、关系操作符(<,>,<=,>=)
26、toLowerCase() //大写转小写
27、相等操作符(==,===,!=,!==)
相等和不相等——先转换再比较
全等和不全等——仅比较不转换
28、赋值操作符
1、乘/赋值(*=)
2、除/赋值(/=)
3、模/赋值(%=)
4、加/赋值(+=)
5、减/赋值(-=)
6、左移/赋值(<<=)
7、有符号右移/赋值(>>=)
8、无符号右移/赋值(>>>=)
语句
1、if语句
对条件表达式进行求值,如果结果是非布尔值,进行Boolean()求值。
2、do-while语句
像do-while这种后测试循环语句最常用于循环体中的代码至少要被执行一次的情形。
3、while语句
while语句属于前测试语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值。
4、for语句
5、for-in语句
for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。
6、label语句
7、break和continue语句
break退出循环体不再执行,continue退出当前循环,进入下一次循环。break和continue都可以配合label使用
8、with语句
with语句是绑定对象用的,但是不建议大量使用,尤其是严格模式是禁止使用的
9、switch语句
注意穿透,同时也可以利用穿透实现目的。ps:switch选择的全等操作
10、函数
arguments是类数组,但是不是数组,
第四章——变量、作用域、内存
第五章——正则
g
表示全局模式(global),即模式被应用于所有字符串,而非在发现第一个匹配项时立即停止
i
表示不区分大小(case-insensitive)写模式,即在确定匹配项时忽略模式与字符串的大小写。
m
表示多行(mutiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。
因此,一个正则表达式就是一个模式与上述3个标志的组合体。不同组合产生不同结果。
//匹配字符串中所有‘at’的实例
var p=/at/g;
//匹配第一个bat或者cat,不区分大小写
var p=/[bc]at/i;
//匹配所有以at结尾的3个字符的组合,不区分大小写。
var p=/.at/g;