如果if((hit.transform != transform)
表示if hit.transform is Not transform
,那么如何检查语句是否正确。 if(hit.transform = transform)
似乎不起作用。
答案 0 :(得分:8)
你需要两个等于平等的标志
if (hit.transform == transform)
请注意,这将允许所有类型的隐式转换,因此您应该使用三个等于符号 - 标识相等或严格相等:
if (hit.transform === transform)
请注意,单个等号是赋值。
x = y;
现在x的值为y。
您的陈述
if(hit.transform = transform)
将hit.transform指定给transform的值,然后测试以查看此表达式的结果(与hit.transform的新值相同)是否为“truthy”
答案 1 :(得分:3)
根据要求,您可以选择==
和===
(否定这些将分别为!=
和!==
。三重等号符号也将执行类型检查。
尝试在javascript控制台中输入以下内容:
1 == 1 // true
1 === 1 // true
1 == "1" // true
1 === "1" // false
编辑:=
是赋值运算符,它与上面的比较运算符不同:
a = 1 // 1
a = "1" // "1"
a = "foo" // "foo"
在if
条件if(a = "foo")
中使用此条件时,您有效地将a
设置为"foo"
,然后测试if("foo")
。虽然"foo"
本身不是布尔条件,但Javascript引擎会将其转换为true
,这就是它仍然有效的原因。
答案 2 :(得分:2)
它是
if(hit.transform == transform)
答案 3 :(得分:2)
您需要使用'==='
这是google上第一个带有解释的结果 http://geekswithblogs.net/brians/archive/2010/07/03/quality-equality-with-javascript-quotquot-gt-quotquot.aspx
答案 4 :(得分:1)
!=
不等于。==
等于。所以你要写:
if (hit.transform == transform) {
您写的内容实际上是如此设置 hit.transform
到transform
的值。