-
在ES6中const, var, let实现了块级作用域中局部变量,在ES6之前,如何解决局部变量。
-
像C语言一样,在函数内部声明的变量就属于局部变量;
数据类型的判定 -
typeof :判断基本的数据类型,不能区分object,null,array,regexp;
-
instanceof :判断引用类型的原型,可用于自定义对象类型;
-
Object.prototype.String.call() :判断所有类型除了自定义对象类型;
-
constructor :得到当前对象创建原型,不能判断undefined和null;
基本数据类型:Number,String,Boolean,Undefined,Null
复杂数据类型:Object
引用类型:Object,Array,Function
其中引用类型属于对象(复杂数据类型) -
Array instanceof Object; //true
深度思考 -
为什么null的类型typeof(null)=object
因为null的实际意义是空对象指针,在最佳实践中表示空对象,如果声明了一个空对象 var a={};那么anull,返回true;==
-什么情况下出现undefined?
undefined表示未声明/未赋值的变量;根据最佳实践,需要用到的变量一定要先声明,这样,如果出现undefined一定是声明但未赋值的的变量;- 转型函数
类似Number(),Boolean(),String();
-NaN为什么是Number类型
表示Not a Number; -