当我in
在 javascript 中使用运算符时,我发现了一些奇怪的东西。似乎in
使用了类似==
但不一样的规则。以下是一些测试:
var obj = {1: 'a', 3: 'b'};
1 in obj //=> true
'1' in obj //=> true
[1] in obj //=> true
true in obj //=> false
因为1 == '1' == [1] == true
,所以在与in
除 之外的运算符比较之前,操作数似乎将被强制转换为字符串或整数类型boolean
。所以我想知道我是对的吗?