null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

undefined和null在if语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。

Boolean(null);    //转为 false
Boolean(undefined); //转为 false null == undefined //true null != undefined //false null !== undefined //true

可以通过“===”来区分它们。

null === undefined   //false

它们的不同之处在于:

1、typeof返回值不同

typeof null;    //"object"
typeof undefined; //"undefined"

2、转为数字结果不同

Number(null);    //转为
Number(undefined); //转为 NaN

它们的用法:

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

(1) 作为函数的参数,表示该函数的参数不是对象。

(2) 作为对象原型链的终点。

Object.getPropertyOf(Object.prototype);    //null

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

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

var i;
console.log(i); //undefined function f(x){
console.log(x);
}
f(); //undefined var o = new Object();
o.p; //undefined var x = f();
x //undefined

最新文章

  1. php curl获取的数据不直接输出
  2. 40多个纯CSS绘制的图形
  3. js的一些压缩和优化性能
  4. PHP协程 详解
  5. 【转】Github轻松上手6-推荐follow的牛人和值得watch的repo
  6. yii框架AR详解
  7. The new Portable Class Library for SQLite z
  8. 【原创】FPGA开发手记(三) PS/2键盘
  9. [ArcGIS Engine]栅格数据处理 RasterDataset RasterLayer Raster RasterBandCollection
  10. LWIP裸机环境下实现TCP与UDP通讯
  11. 多线程与CPU和多线程与GIL
  12. Python之路【第五篇】函数
  13. ssh以root用户远程登录失败
  14. win10 SVN不能显示图标
  15. C#中全局处理异常方式
  16. pageHelper 排序 +- 字符串处理
  17. [USACO08OCT]Watering Hole
  18. PHP断点调试工具Xdebug的安装
  19. java 字符串格式化
  20. OpenH264编译ffmpeg android

热门文章

  1. IL and 堆于栈
  2. 关于QT的QPainterPath::arcTo 详解
  3. Windows7安装JDK的环境变量设置javac不是内部命令或外部命令
  4. infra 仪表盘效果
  5. ASP.NET调用dos命令获取交换机流量
  6. 10X Genomics vs. PacBio
  7. 20170523xlVBA多条件分类求和一例
  8. memcached哈希表操作主要逻辑笔记
  9. linux中whereis、which、find、location的区别和用法
  10. sql表联接