Javascript隐式转换

Javascript隐式转换

Javascript对类型错误出奇宽容,通常情况下不会抛出异常,而是按照多种多样的自动转换协议将值转换成期望的类型。

一 -、*、/、%在计算之前都会尝试将其参数转换为数字

2 - '2'  // 0
2 * '2'  // 4
2 / '2'  // 1
2 % '2'  // 0

二 + 比较特别,因为它既承载数字的相加,有承载了字符串链接

具体是数字相加还是字符串链接,取决于参数的类型

'2' + 3     // '22'
2 + '3'     // '23'
1 + 2 + '3' // '33'
(1 + '2') + 3  // '123'

三 真值的转换

程序中常见的逻辑判断。

if(true){

}

a || b

a && b

if、||、&& 等运算符逻辑上需要布尔值操作,但实际上可以接受任何值,Javascript隐式的强制转换成布尔值。
幸运的是Javascript只有7个假值:false、0、-0、""、NaN、null和undefined,其他都是真值。

var flag = {}; // 'test'100' '、{}
if(flag){
    console.log(true);
}

注意 ' 'true

var flag = ' '; // 
if(flag){
    console.log(true); // true
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值