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