消息
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
错误类型
SyntaxError
只在严格模式下会出现的警告。
什么地方出错了?
在通常期望进行相等判定(==
)的地方出现了赋值(=
)。 为了帮助调试,JavaScript(在开启严格模式的情况下)会对这种情况进行警告。
示例
条件表达式内的赋值
不建议在条件表达式中 (例如 if...else
) 使用简单赋值语句,因为在扫视代码的时候赋值操作与相等判定容易产生混淆。例如,不要使用以下写法:
if (x = y) { // do the right thing }
如果你需要在条件表达式中使用赋值语句, 通常的做法是用一对括号把赋值语句包起来。 例如:
if ((x = y)) { // do the right thing }
否则, 你的本意可能是想用比较操作符 (如 ==
或 ===
):
if (x == y) { // do the right thing }