美文网首页
null和undefined的区别

null和undefined的区别

作者: 夏沉 | 来源:发表于2016-03-25 19:49 被阅读0次

在许多计算机语言中,有且仅有一个表示“无”的值,如C语言的NULL,Java的null,Python的None。
然而JS中竟然有两个表示“无”的值:null和undefined,这是为什么?它们之间又有什么区别?


undefined与null
  • null

空的对象引用。
1995年JavaScript诞生之初,像Java一样,只设置了null表示“什么都没有”,因此和Java一样,
(1) null被当成一个对象;
(2) null可以自动转化为0;

typeof null; //返回值为 object
Number(null); //返回值为 0

  • undefined

后来JS的设计者Brendan Eich认为“无”的值最好不是对象,且由于null自动转化为0,因此造成错误不易被发现。
因此,Brendan Eich又设计了一个undefined,表示“缺少值”,即此处应有一个值,但还没有定义;转为数值时为NaN(非数字值的特殊值)
Number(undefined); //NaN
5+undefined; //Nan
典型的出现场景如下:
(1)变量被声明了,但没有赋值;
(2) 调用函数时,应提供的参数未提供
(3) 对象没的属性未定义;
(4) 对象没有返回值,则默认返回undefined

var i;
i; //undefined

  function f(x) {
      console.log(X);
  }
  f(); //undefined

  var o = new Object();
  o.name; //undefined

  var x = f();
  x;  //undefined

(完)

相关文章

  • 你所不知道的 JavaScript

    null 和 undefined 的区别 null和undefined的区别,两者值是相等的unll==undef...

  • TypeScript 基础语法

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

  • JavaScript中null和undefined的区别

    JavaScript 中null和undefined的区别 typeof操作符 在区分null和undefined...

  • js基础知识

    [TOC] null和undefined区别 例子 对于null和undefined,大致可以像下面这样理解。 n...

  • 知识点杂谈

    1.js中null和undefined的区别 在js中null和undefined都表示空,但它们还是存在一定区别...

  • 02-相关问题

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

  • 【IMWeb秋招训练营】【Day4】面试题总结

    经典面试题 13.null和undefined的区别? undefined判断的是变量的类型,null和NaN判断...

  • 第三章 基本概念

    undefined和null的区别 undefined 是声明后没有赋值的结果,表示没有值 null 是有值,它的...

  • null和undefined

    null和undefined的区别 undefined 是已经申明了。未赋值。 typeof undefine...

  • null和undefined区别

    1.null是一个表示无的对象,转化为数值为0undefined是一个表示‘无’的原始值,转化为数值为NaN2.当...

网友评论

      本文标题:null和undefined的区别

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