undefined 和 null

未匹配的标注

undefined 和 null 类型是只有一个值的数据类型,值就是 undefined 和 null

if (b === undefined) {} // 最好不要这样,除非已知道 b 已声明,否则会抛出错误
if (typeof(b) === "undefined") {}

undefined 和 null 的区别

undefined 翻译: “未定义的”;null 翻译 “空白的”;

似乎两者表达的意思差不多,实际上 undefined 派生于 null,ECMA 规定两者 == 操作符返回 true:

console.log(null == undefined); // true

在 js 中,null 是一个空对象指针,也就是一个变量还没有真正保存对象时,应该明确让变量保存 null,以和 undefined 做区别。

console.log(typeof null) // object

比如这样体现不出来这样的惯例,你不知道它保存什么

var user; 

而这样声明,则知道它应该保存对象

var user = null;

user = {"name":"xiaoming"} // 赋值为对象
user = null // 释放内存

在编程中的表现:

//空指针
var a=null
console.log(a); // null 按惯例应保存对象

// 未初始化
var n;
console.log(n); // undefined 不知道n是什么

// window 对象上不存在的属性
console.log(window.m); // undefined 不知道m是什么

其他资料
【1】引自:百度百科

null 的类型是一个对象,用来表示一个变量没有任何数值,而 undefined 是指变量没有定义任何值
undefined 与 null 不同,它表示无值的意思,并且具有独一无二的类型,它区别任何对象、数组、数值、字符串和布尔型。

【2】undefined与null的区别 - 阮一峰

【3】undefined 设计的历史原因

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~