1. 什么是“use strict”,好处和坏处(掌握)
use strict: "严格模式"是一种在JavaScript代码运行时自动实行更严格解析和错误处理的方法。
优点:
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
缺点:
现在网站的 JS 都会进行压缩,一些文件用了严格模式,而另一些没有。这时这些本来是严格模式的文件,被 merge 后,这个字符串("use strict")就到了文件的中间,不仅没有指示严格模式,反而在压缩后浪费了字节。
2. console.log(0.1 + 0.2)(掌握)
0.1+0.2的结果不是0.3,而是0.3000000000000000004。
JS中两个数字相加时是以二进制形式进行的,当十进制小数的二进制表示的有限数字超过52位时,在JS里是不能精确储存的,这个时候就存在舍入误差。
3. 数组pop(), push(), unshift(), shift()的区别(掌握)
-
push()方法可以在数组的末尾添加一个或多个元素 -
shift()方法把数组中的第一个元素删除 -
unshift()方法可以在数组的前端添加一个或多个元素 -
pop()方法把数组中的最后一个元素删除
4. == 和 ===(掌握)
-
==:只是比较值
-
===:既要比较数据类型还要比较值
5. 事件冒泡和事件捕获到底有何区别?(掌握)
-
事件冒泡:从下至上。当给父子元素的同一事件绑定方法的时候,触发子元素身上的事件,执行完毕之后,也会触发父级元素相同的事件。
-
事件捕获:从上至下到指定元素。当触发子元素身上的事件时,先触发父元素,然后在传递给子元素
注意: addEventListener中有三个属性,第三个属性是布尔值。false为事件冒泡,true为事件捕获!