共计 917 个字符,预计需要花费 3 分钟才能阅读完成。
js 中 null 和 undefined 的区别? 这也是一个常见的 js 面试题
相同点
1,都是根本类型。
2,做判断值都是 false。
!!null === false // true
!!undefined === false // true
不同点
1,诞生工夫 null 在前,undefined 在后。因为 js 作者 Brendan-Eich 在发明 js 语言时,间接抄了 java 很多货色。也包含 null, 前期发现 js 中的 null 有缺点,又发明了 undefined。(《JavaScript 高级程序设计》中有说, 上面的不同点就蕴含 null 毛病)
2,typeof 类型不同
typeof null; // 'object'
typeof undefined; // 'undefined'
3,Number() 转数字也不同
Number(null); // 0
Number(undefined); // NaN(Not a Number,非数)是计算机科学中数值数据类型的一类值,示意未定义或不可示意的值。
4,前端开发中呈现的机会不同
(1) null 触发 null 的机会
// 举例
// 获取不存在的 dom
document.getElementById("233") // null
// 获取不存在的贮存
localStorage.getItem("233") // null
sessionStorage.getItem('233') // null
...
(2) 触发 undefined 的机会
// 举例 (undefined 触发机会太多,简略举例)
// 申明变量未应用
var test1; // undefined
// 申明变量未应用
var test1; // undefined
// 对象中找不到该属性
var obj ={};
obj.a; // undefined
...
5,函数参数有默认值时,当参数应用时默认参数 是否失效 成果不同。
function demo(data = '233'){console.log('_______'+data);
};
demo(null); // _______null
demo(undefined); // _______233
总结
null 实质是一个示意 ” 无值 “ 的对象,算是一个非凡值。
undefined 是一个示意 ” 还没有定义 “ 的原始类型。
正文完