1.null 和 undefined区别
在js中nul表示-什么都没有
null是一个只有一个值的特殊类型。表示一个空对象引用
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
let num =null; 一般最好用null作为初始的空值,因为零不是空值,0在栈内存中有自己的存储空间
2.谈谈你对闭包的认识?
闭包就是能够读取其他函数内部变量的函数,闭包的父函数的作用域是不被释放的。
闭包的应用:
防抖和节流
防抖: 一个事件需要执行n秒,n秒内再次触发重新计时
节流: n秒内只运行一次,若在n秒内重复触发,只有一次生效
3.for ... in 和 for ... of 的用法
for.. in 用于遍历数组或者对象的属性
for...in
循环只遍历可枚举属性
for (变量 in 对象){
在此执行代码 }
for … of循环是ES6引入的新的语法,用for … of循环遍历集合
for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。
4.NaN
NaN不是一个数,但是他属于数字类型
NaN和任何值都不相等包括自己。
isNaN是检测一个值是否是非有效数字,不是有效数字返回true,是有效数字返回false