回顾一下JavaScript的null, undefined

1、null, undefined在条件判断时都为false值
assert(! null );
assert(! undefined);
还有 空字符, 0, NaN
assert(! "");
assert("\n\t" == false)
assert(! 0);
assert(! NaN);

2、undefined值派生自null值,但是值等类型不等
assert(null == undefined); //值等
assert(! (null === undefined));// 值等类型不等

null值的类型是Object,undefined值的类型是Undefined
assert(typeof null == 'object');
assert(typeof undefined == 'undefined');

3、变量已声明但未初始化,其值是undefined
var a; //相当于var a = undefined;
assert(a == undefined);
assert(a == null);
assert(a != 1);
assert(typeof a == 'undefined');

4、未声明过的变量不可参与表达式计算,但可使用typeof操作符判断其类型
try{
c == undefined ? 0 : 1; // 不可使用未声明的变量参与计算, 否则抛ReferenceError异常
}catch(e){
console.log(e); //ReferenceError: c is not defined
}

assert(typeof(b) == 'undefined'); // 未声明过的变量类型为Undefined

注: assert方法简单实现:
function assert(expr){
if(expr !== true){
throw "Assert error";
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值