神奇的js

取整(不四舍五入)

~~2.33 === 2
2.33 | 0 === 2
2.33 >> 0 === 2
Math.floor(2.33)

浮点数精度丢失问题

// 在进行浮点数运算的时候,可能会出现精度丢失的问题
// 尽量少用浮点数进行运算,不要让浮点数进行比较
0.1 + 0.2 = 0.30000000000000004

// 解决办法 : 根据小数点后面的位数量 乘以对应的整数
0.1 + 0.2 ==> (0.1*10+0.2*10) / 10 = 0.3

js 中的隐式转换

(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] === 'sb'