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来检查数组是否为空,比[] == ![]更直观可靠。