js的基本数据类型有六种,undefined、null、number、string、boolean、object.
未定义 空 数字 字符串 布尔 对象
特别注意:
①什么时候值是undefined?
声明变量但是没有赋值比如var a;和没有声明的变量,用typeof检测都是undefined
②""和null一样么?
在类型上当然是不一样啊,一个是空字符串,一个是空对象哦 如果null==""判断,那一定是false
null代表对象没有进行实例化
""代表对象已经实例化了,实例了一个空的字符串
③null==undefined 为什么是true?
因为undefined派生自null,ecma-262规定对他们进行相等性测试要返回true,目的是为了兼容老的网站。
④因为声明变量但是没有赋值比如var a;和没有声明的变量,都是undefined,undefined的报错的情况下你不知道是定义的还是没定义的变量,
不赋值的情况下,初始化变量上要var a = null;再报undefined的错误那就是你没定义这个变量了。
typeof是检测数据类型用的
var a="sdfds"; typeof a; typeof(a);//这里两种书写方式是一样的
var a = ""; var b=null; var c; var d=funciton(){}; var e= new Object(); typeof a;// string typeof b;//object typeof c;//undefined typeof d;//funciton typeof e;//object
typeof 检测null返回的是object,因为null表示一个空对象指针,所以用typeof判断是不是null类型不可行
function在数据类型里面是object,所以用typeof可以判断是不是function。