当前位置: 首页 > Web前端 > HTML

JS中undefined和null的区别

时间:2023-03-28 14:08:34 HTML

●JavaScript确实是一种特殊的语言。其他语言只有一个值,代表“无”。比如Java语言使用null,C语言使用NULL,Python语言使用None,Ruby语言使用nil。JS中“空”有两种表达方式,一种是undefined,一种是null。很多小朋友刚开始学习的时候都会有一个疑问,那就是undefined和null有什么区别?我应该什么时候使用它?●接下来说说JS的基本数据类型●在JS中,有几种基本数据类型●ES5○Numbervalue○Stringstring○Boolean○Undefinedempty○nullempty●ES6○Symboluniquevalueundefined和null其实就是JS中的基本数据类型,空类型○从这个角度看,它们是一样的,都是空的意思○而在比较数据类型时,某一个console.log(undefined==null)//true两者的区别●两者的区别在于意义●前面说过,所有的数据在计算机中都是以二进制的形式存储的●那么这两个数据也会以二进制的形式存储○undefined因为是“无”的意思,所以有没有转换,什么都没有。○null因为是“空”的意思,所以它其实是有内容的,但是有一个空的内容,存储的值为00000000...然后就会反馈给我们的代码。○undefined表示没有值,或者未赋值。叫做空指针●举个例子:我们以数字为例○这个表示有一个具体的数字,100、200什么的○这个是0,用完了,没有了○这个是null,有一个空shelf,elseeverythingNo○这个是undefined,连shelf都不是●按照上面的例子○undefined什么都不用做,只要不赋值就是undefined○null,需要赋值,直接赋值null,即你要安装一个空的架子。两种数据类型不同,但值相同。这两个数据分别属于Undefined类型和Null类型。log(undefined==null)//true,不涉及数据类型比较console.log(undefined===null)//false,涉及数据类型比较,使用场景不同null○当我们需要一个空值或者空变量时○原型链结束位置,即Object.prototype.__proto__为null●undefined○当变量声明没有赋值时,为undefined○当函数只有形参,没有实参时,该值ofthisformalparameterisalsoundefined○如果一个函数没有设置返回值,那么这个函数的返回值也是undefined总结●总之,我们只要记住一个原则○当你什么都没做的时候,那么就是undefined○只有想白干的时候,才可以手动写成null