码迷,mamicode.com
首页 > 其他好文 > 详细

undefined 和 null 理解

时间:2015-08-26 17:31:20      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

  js中,对于在生命后没有给定初值的变量,就会给定一个undefined的值。不过前提是变量必须是已经被声明了的,如果是对于没有声明的变量,就会报错。

v1;       //报错,vi is not defined

var v2;     //undefined

var v2 = "";  //null 

undefined的典型用法:

  1. 变量被声明了,但是没有赋值,就是 undefined ; 

  2. 调用函数时,应该提供的参数却没有提供,那么默认参数就是 undefined;

  3. 对象中没有赋值的属性,该属性就是 undefined;

  4. 函数没有返回值,就会默认返回 undefined。

 

  相比起来,null 表示一种特殊的object的值,用来表示空引用的概念。 如果要让一个标识符声明为object,但暂时不给他实例,便可以先把他初始化为 null, 以便以后来使用。

null的典型用法:

  1. null 表示没有对象,即此处不应该有任何值;

  2. 作为函数的参数,表示该函数的参数不是对象;

  3. 作为对象原型链的重点。

一个很有趣的语句对:

undefined == null;   // true

undefined === null;  // false

 

网上有个很有趣的说法,当然我也感觉这种说法很有道理:

  undefined 是 从 null 派生出来的: 基本数据类型都有一个与之相对应的引用类型。 就像 number 对应 Number , boolean 对应 Boolean......他们具有相同的行为,并且相互之间都会有类似拆箱和装箱的操作。

 

有关 null 和 undefined 的行为:

  1. null 参与数值运算会自动转换为 0 ;

  2. typeof null 会返回 object , 因为 null 表示的是无值的引用;

  3. undefined 是全局对象的一个特殊属性,其值为 Undefined 类型的专有值 undefined;

  4. undefined 参与任何数值运算的时候,其结果一定是NaN;

  

  都是原来笔记上整理的,出处有些已经找不到了,等的以后再看到出处的时候补上,不好意思。。。

undefined 和 null 理解

标签:

原文地址:http://www.cnblogs.com/adforever/p/4760782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!