null与undefined

var a = undefined;
var b = null;

if (!a) {
    console.log('undefined is false'); // undefined is false
}
if (!b) {
    console.log('null is false'); // null is false
}

console.log(isNaN(a)); // true
console.log(isNaN(b)); // false
console.log(a == b); // true
console.log(a === b); // false
console.log(typeof null); // object
console.log(typeof undefined); // undefined
  • undefined与null转换为布尔值都为false;
  • null 表示一个“无”的对象,转为数值时为0;undefined表示一个“无”的原始值,转换为数字位NaN;
  • undefined 从null派生 “==”,认为相等所以输出true;“===”需要比较类型,类型不一致,所以输出false;

1、null 表示没有对象,即该出不应该有值,用法为:

① 作为函数的参数,表示该函数的参数不是对象。
② 作为对象原型链的终点。

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

① 变量被声明了,但没有赋值时,就等于undefined。
② 调用函数时,应该提供的参数没有提供,该参数等于undefined。
③ 对象没有赋值的属性,该属性的值为undefined。
④ 函数没有返回值时,默认返回undefined。

// 变量声明未初始化
var a;
console.log(a); // undefined

// 函数调用未传参
function f(x) {
    console.log(x);
}
f(); // undefined

// 对象未赋属性值
var o = new Object();
console.log(o.p); // undefined

// 函数没有返回值
var x = f();
console.log(x); // undefined

参考资料
阮一峰-undefined与null的区别

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,683评论 0 13
  • 一、相似性在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。 上面代码中...
    wyq_0bed阅读 187评论 0 0
  • 1.最初设计 null为空的对象,转化为数值为0 undefined表示原始值,转化为数值为NaN 2.目前的用法...
    星月西阅读 361评论 0 0
  • 先跳进去,身在其中的参与,所获得的有效知识,远大于站在圈外观看,等自己慢慢弄明白了才进入要快的多。 有枣没枣,打三...
    七色黑白阅读 190评论 0 0
  • 这段时间,我确实淘了不少东西,但是另我满意的东西却要等过时间的考验了。真的,人生可能就如购物,经历的越多就越从容不...
    三度和弦阅读 178评论 0 1

友情链接更多精彩内容