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); // 0Number(undefined); // NaN (Not a Number,非数)是计算机科学中数值数据类型的一类值,示意未定义或不可示意的值。
4,前端开发中呈现的机会不同
(1) null 触发null的机会
// 举例// 获取不存在的domdocument.getElementById("233") // null// 获取不存在的贮存localStorage.getItem("233") // nullsessionStorage.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); // _______nulldemo(undefined); // _______233
总结
null实质是一个示意"无值"的对象,算是一个非凡值。
undefined是一个示意"还没有定义"的原始类型。