美文网首页
undefined与null

undefined与null

作者: 伍纯胥 | 来源:发表于2016-07-13 22:24 被阅读0次

1.Undefined


Undefined 类型只有一个值,即undefined。在使用var 声明变量但未对其初始化时,这个变量的值就是undefined。例如:

    var word;
    console.log(word == undefined); //true

这个例子只声明了变量,但未对其进行初始化。比较这个变量与undefined 字面量,结果表明它们是相等的。

不过,包含undefined 值的变量与尚未定义的变量还是不一样的。看看下面这个例子:

    var message;              // 这个变量声明之后默认取得了undefined 值

    // var hello;               //这个变量并没有声明

    console.log(word);     // "undefined"

    console.log(hello);    // 产生错误

运行以上代码,第一个控制台会输出变量word的值,即"undefined"。而第二个输出——由于传递给console.log()函数的是尚未声明的变量hello——则会导致一个错误。

然而,对未初始化的变量执行typeof 操作符会返回undefined 值,而对未声明的变量执行typeof 操作符同样也会返回undefined 值。

例如:

    var word;                                      // 这个变量声明之后默认取得了undefined 值

    // var hello;                                  // 这个变量并没有声明

    console.log(typeof word);            // "undefined"

    console.log(typeof hello);           // "undefined"

2.Null


Null 类型也只有一个值的数据类型,这个值是null。从逻辑角度来看,null 值表示指向一个空对象,而这也正是使用typeof 操作符检测null 值时会返回"object"的原因,如下面的例子所示:

    var car = null;
    console.log(typeof car); // "object"

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null 而不是其他值。这样一来,只要直接检查null 值就可以知道相应的变量是否已经保存了一个对象的引用,如下面的例子所示:

    if (car != null){                     // 对car 对象执行某些操作
    }
    alert(null == undefined);    //true

3.Null与Undefined的区别


这里,null = undefined 总是返回true,不过要注意的是,这个操作符出于比较的目的引擎会隐式转换,实际上,undefined 值是派生自null 值的①。

即使null == undefined 为true,但它们是两种完全不同的数据类型,同时它们的作用也不尽相同。我们没有必要为一个变量设置为undefined,但是很多情形下我们会对个一个变量赋值为null,表示为空。即意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null 值。这样做不仅可以体现null 作为引用空对象习惯,也区分null 和undefined。

①.ECMA-262 规定对它们的相等性测试要返回true 。

相关文章

  • 02-相关问题

    undefined 与 null 的区别? undefined :代表定义未赋值 null :null 定义并赋值...

  • 随堂笔记

    undefined与null typeof undefined === 'undefined' typeof nu...

  • TypeScript 基础语法

    1、void 与 undefined和 null 与 void的区别是,undefined 和 null是所有类...

  • JS杂记

    1、Undefined 与 Null 的区别 Undefined 与 null 的值相等,但类型不相等。在js中,...

  • null与undefined

    undefined与null转换为布尔值都为false;null 表示一个“无”的对象,转为数值时为0;undef...

  • null 与 undefined

    undefined值是派生自null值 undefined:声明一个变量但未初始化,这个变量的值就自动被赋予und...

  • null与undefined

    一、相似性在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 上面代码中...

  • null 与 undefined

    null 表示一个对象的值是空值,而undefined 表示一个对象是没有被赋初值的。 好吧,这并没什么用。 按照...

  • undefined与null

    1.Undefined Undefined 类型只有一个值,即undefined。在使用var 声明变量但未对其初...

  • undefined 与 null

    undefined 与 null 都是 JavaScript 的基本数据类型,在转换为 Boolean 类型时也都...

网友评论

      本文标题:undefined与null

      本文链接:https://www.haomeiwen.com/subject/hrkejttx.html