undefined和null的区别,及void 运算符的了解

451 阅读2分钟

仅供笔记学习

1.undefined

  1. undefined是window对象的一个属性,其类型是Undefined。
  2. Undefined 类型表示未定义,它的类型只有一个值,就是 undefined。任何变量在赋值前是 Undefined 类型、值为 undefined,一般我们可以用全局变量undefined(就是名为undefined的这个变量)来表达这个值,或者 void 运算来把任一一个表达式变成 undefined 值
  3. 因为JavaScript的代码undefined是一个变量,而并非是一个关键字,所以,为了避免无意中被篡改,建议使用 void 0 来获取undefined值。

2.null

  1. Null 类型也只有一个值,就是 null,它的语义表示空值,与 undefined 不同,null 是 JavaScript 关键字,所以在任何代码中,你都可以放心用 null 关键字来获取 null 值。
  2. 可以让不需要的对象指向null,使得无用变量及时被回收

3.两则区别

  1. undefined表示的是:“定义了但未赋值”,null表示的是:“定义了但是为空”。所以,在实际编程时,我们一般不会把变量赋值为 undefined,这样可以保证所有值为 undefined 的变量,都是从未赋值的自然状态
  2. undefined可以赋值,null不可以赋值。undefined在浏览器中的全局赋值不会有变,在局部赋值会改变。

4.void 运算符

  1. void运算符对给定的表达式进行求值,然后返回undefined;
  2. 在使用立即执行的函数表达式时,可以利用void运算符让JavaScript引擎把一个function关键字识别成函数表达式而不是函数声明(语句)
void function () {console.log(111)}() //不报错输出111

引用: