关于前端:js中null和undefined的区别

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是一个示意”还没有定义“的原始类型。

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据