1.什么是闭包
在函数1内部创建函数2,若函数2调用函数1的变量,就会形成闭包。假设调用的是变量a,即使函数1执行完成后,变量a也不会释放,JavaScript会为它形成一个专门的执行上下文, 保存变量a的执行环境,这个执行环境就是闭包。 闭包可以用于封装函数的内部变量,因为从外部是无法访问到函数内部变量的,但是通过闭包就可以实现这一点。 另外闭包可以进行回调函数,它可以返回一个函数在将来需要调用时再调用,并且能缓存之前的执行环境。
2、JS中的数据类型有哪些
数据类型共有六种,分为基本类型和引用类型。
基本类型有:string、number、boolean、null、undefined
字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)
引用类型:object
3、JS检测数据类型的方法:
四种;
typeof、instanceof、constructor、Object.prototype.toString.call()
typeof可以判断除了null以外的原始类型
typeof只能判断对象类型中的function,其他都为Object
为什么typeof null 的值为object?
因为typeof null时返回object是最初JavaScript语言的一个bug,为兼容老代码保留至今
(原型末端是null,null可以看为是一个空对象。所以typeof null时返回object)
嘿嘿~