它们似乎都输出相同的结果并将字符串转换为数字。有我不知道的区别吗?我似乎找不到任何有关 ~~ 运算符的文档。
var hey = true
hey = +hey //hey = 1
var hey = true
hey = ~~hey //hey = 1
var num = "1231"
num = ~~num //num = 1231
var num = "1231"
num = +num //num = 1231
我发现了一个不同之处,那就是 ~~ 总是会尝试输出一个数字,而在某些情况下 + 会简单地返回 NaN
num = "omfg"
num = ~~num //num = 0
num = "omfg"
num = +num //num = NaN
num = {}
num = ~~num //num = 0
num = {}
num = +num //num = NaN
任何澄清都会很棒:)