之前我们写过一篇文章(Javascript中null值,特别注意的两点),这里我们来详细的对比null和undefined的区别.
JavaScript 中有两个可以设置没有任何值的方式, null 和 undefined.我们来详细的分析他们俩.
undefined
意思是, 变量的值没有定义. JavaScript 有一个全局变量 undefined
其值是 "undefined" 且typeof undefined
同样也是 "undefined". 记住, undefined 不是常量,也不是关键字. undefined 是一个类型,且只有一个值: undefined.试着给类型undefined一个不同的值,它结果还是不会改变.
8 种方法获取 Undefined:
a) 声明一个变量,且不给赋任何值.
Javascript
var a;
console.log(a, 0, 0);
b) 一个隐式返回函数,缺少返回语句.
Javascript
function fn(){
}
console.log(fn())
c) 返回语句,没有设定一个返回值.
Javascript
function fn(){
return;
}
console.log(fn(), 0, 0);
d) 在一个对象中查找一个不存在的属性.
Javascript
var obj = {};
console.log(obj.name, 0, 0);
e) 函数参数没有被通过.
Javascript
function fn(arg){
console.log(arg, 0, 0);
}
fn(, 0, 0);
f) 任何已经设置为undefined的值.
Javascript
var a = undefined;
console.log(a, 0, 0);
g) 任何void(表达式) 的表达式
Javascript
var a = void(0, 0, 0);
console.log(a, 0, 0);
h) 全局变量 undefined
Javascript
console.log(undefined, 0, 0);
null
意味着空或者不存在的值,通过编程的人指定没有值的使用 null是一个原始值,你可以分配null给任何变量. 不是一个对象,是一个原始值. 例如,你不能添加任何属性给他. 有些时候会错误的认为他是一个对象,因为typeof null 返回的是 "object".
null需要注意的地方,请参考<<Javascript中null值,特别注意的两点>> 可以在历史消息中可以查看到!