1.什么是事件委托?为什么这样做?
答:它还有一个名字叫做事件代理,事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一个类型的所有事件。为什么这样做呢?通过事件委托可以减少事件处理程序数量,大大的减少与DOM的交互次数,提高了性能。
2.JS的数据类型?
答:JS的数据类型有八种。
在ES5的时候,我们认知的数据类型确实是6种,Number,string,Boolean,un
derfined,object,null。
ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。
谷歌67版本中还出现了一种 bigInt。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。
JS数据类型:Object 中包含了哪几种类型?其中包含了Date、function、Array等(这三种比较常用)
3.fon in ,object.keys()区别?哪个要用于遍历原型链上的属性?
答:for-in 是javaScript中最常见的迭代语句,常常用来枚举对象的属性。某些情况下,可能按照随机顺序遍历数组元素;而Object.keys(),可以返回以对象的属性为元素的数组。数组中属性名的顺序跟使用 for-in遍历返回的顺序是一样的。
二者遍历的数量是不同的,for-in 不单可以枚举自身属性,也可以枚举继承自原型链上的属性,Object.keys()只可以枚举自身属性。
for-in会遍历原型链上的属性,而Object.keys不会。
4.NaN == NaN 的结果是什么?为什么?
答:NaN == NaN 的执行结果是 false。因为JavaScript规定,NaN表示的是非数字,但是这个非数字也是不同的,因此 NaN 不等于 NaN,两个NaN永远不可能相等。
5.说一下你对Promise的了解?说说你对Promise的原理的理解?
答:Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。
所谓promise,