null和undefined
null: 空,没有
undefined: 未定义,没有'': 空字符串,没有
0: 也可以理解为没有
空字符串和null的区别
空字符串开辟了内存地址,消耗了一些性能,而null没有
null和undefined的区别
共同点时都没有开辟内存地址
null暂时没有,预期以后会有(可能会达不到预期),一般都是手动赋值,后期再赋具体值,Null类型,代表“空值”,代表一个空对象指针,typeof运算得到 “object”,所以可以认为它是一个特殊的对象值
undefined
,完全没在预期之内,为了区分空指针对象和未初始化的变量
例如:
document.parentNode //-> null
document.parentnode //-> null
null
的几种情况:
1、手动设置一个变量的值为null,方便后期赋值
2、手动释放一个内存,让其值变为null
3、通过document.getElementById('box'),如果页面中没有box,获取的结果就是null
4、在正则的exec
和字符串的match
捕获中,如果不匹配捕获到的结果为null
5、Object
原型上的__proro__
属性是null,他有但是他没意义,所以设置为null
undefined
的几种情况:
1、JS只声明未定义的变量值是undefined
2、函数中没有写return,默认的返回值是undefined
3、获取一个对象的属性名对应的属性值,若属性名不存在,获取的值为undefined
4、函数的形参不传值,其值为为undefined
可以应用这个才检测浏览器兼容不兼容,比如IE的window对象下没有getComputedStyle
这个方法
网友评论