JS 的一些奇怪的语法
https://blog.csdn.net/qq_66233357/article/details/130798717
类型转换使用 +
和 -
+
将字符串转换为数字。例如:+"42"
结果是42
。-
转换并翻转符号位。例如:-"42"
结果是-42
。
~
操作符
~
是按位非运算符,~x
相当于-(x+1)
。~~
用于去除小数部分,相当于parseInt
。!~
常用于indexOf
检查,!~indexOf
等同于indexOf === -1
。
简化条件表达式
b = a ? true : false;
可以简化为b = !!a;
。
&&
和 ||
操作符
- 它们返回操作数的一个值,而非布尔值。
a && foo();
表示如果a
为真,则执行foo()
。a == 2 && a == 3;
结果为false
,不会报错。
恒假值和恒真值
- 使用字符串与布尔值比较创造恒假或恒真值不推荐,如
"42" == true
。
“假阳”(Falsy Truthy)情况
false == 0
,false == ""
,false == []
:因为隐式类型转换。"0" == false
,"" == 0
,[] == 0
,[] == ![]
:也是类型转换的结果。
检查数组是否为空
- 使用
data.length == 0
来检查数组是否为空,比[] == ![]
更直观可靠。