javascript中的null和undefined

来源:互联网 发布:protel手机版软件 编辑:程序博客网 时间:2024/05/20 05:23

本文参考阮神的博客,外加自己的一些实验,记录一下null和undefined的注意点

null和undefined在JavaScript中的含义

null的含义

  • null是JavaScript的关键字,常用来描述“空值”。
  • 在浏览器的控制台对nulltypeof函数
typeof(null)

1
返回的是object,可以认为null是一个特殊的对象值,含义是“无对象”。
* 对null使用Number函数

Number(null);10+null;

2
返回0,说明在装换为数字的时候识别为0
* 在转为布尔型的时候

if(!null)  console.log("null is false");

3
语句执行,说明null在转换为布尔值的时候是’false’

undefined的含义

  • undefined不是JavaScript的关键字,用未定义的值表示更深层次的“空值”。undefined是预定义的全局变量,它的值就是“未定义”.
  • undefined使用typeof函数
typeof(undefined);

3
返回的还是undefined,表明这个值是这个类型的唯一成员。
* 使用Number函数

Number(undefined);

4
返回值是NaN,说明转化为数字的时候是NaN
* 转化为布尔值的时候

if(!undefined)  console.log("undefined is false");

5
转为布尔值的时候表示为false

null和undefined的差别

if(null==undefined)console.log("相等");elseconsole.log("不相等");

6

if(null===undefined)console.log("相等");elseconsole.log("不相等");

7
通过=====的判断,nullundefined本质上是不相等的,==判断的情况下是因为==在判断之前先进行类型的转换,转为布尔型之后都是false相等。而===没有进行类型转换的比较。

当前null和undefined的用法

上面这样的区分,在实践中会被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。

null表示”没有对象”,即该处不应该有值。典型用法是:

  • 作为函数的参数,表示该函数的参数不是对象。
  • 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype)// null

undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:

  • 变量被声明了,但没有赋值时,就等于undefined。
  • 调用函数时,应该提供的参数没有提供,该参数等于undefined。
  • 对象没有赋值的属性,该属性的值为undefined。
  • 数组元素没有被赋值
  • 函数没有返回值时,默认返回undefined。
var i;i // undefinedfunction f(x){console.log(x)}f() // undefinedvar  o = new Object();o.p // undefinedvar x = f();x // undefined
0 0
原创粉丝点击