javascript 中的常见坑

各种数值类型转换成 布尔值:
undefined 和 null 转换成 布尔值都是 false
布尔值: true 是 true ,false 是 false;
数字: +0, -0 和NaN 都是转换成 false,其他的数字都是true
字符串: 空字符串转换成 false,其他的字符串都是true
对象: 转换成布尔值都是 true

例子:

function testTrue(val){
	return val ? console.log('true') : console.log('false);
}
testTrue(true); // true
testTrue(false); // false
testTrue(new Boolean(false));// true ----对象转换成布尔值始终为true

testTrue(‘ ’); //false ----空字符串false 
testTrue('false'); //true
testTrue(new String(' ')); //true 创建的是字符串对象,对象皆 true

testTrue(1); //true
testTrue(-1); // true
testTrue(NaN); //false
testTrue(new Number(NaN)); // true 创建的是 数字对象,true
testTrue(0); // false

testTrue({}); // true 对象皆为true 
let obj = {
	name: ' Pony '
};
testTrue(obj);// true
testTrue(obj.name); // true
testTrue(obj.age); //false 因为obj.age不存在

相等操作符 (== 和 ===)
不同类型的值用相等操作符比较后的结果

向Promise.all([…]) 传入空数组,它会立即完成,但是Promise.race([…]) 会挂住,且永远不会被决议。

font 属性的前三个值允许采用任意的顺序,但是后面的font-size 和 font-family 不仅要求 font-size 在前,font-family 在后作为声明中的两个值,而且font 声明中必须有这两个值,如果少了其中的某个属性,那么整个规则都将是无效的,很可能会被用户代理完全忽略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值