15.1.4 条件语句中的单个等号

条件语句(参见3.1.1节)为程序提供了一种方式,根据一个变量的值、页面上一个元素的状态或者脚本中的某些其他的条件,来以不同的方式响应。例如,如果一幅图片是隐藏的话,条件语句可以显示它;而如果它是显示的,就隐藏它。然而,只有特定的条件为true或false的时候,条件语句才有意义。遗憾的是,很容易创建那些总是为true的条件语句:


if(score=0){

alert('game over');

}


这段代码用来检查存储在变量score中的值,如果这个值是0,那么,带有消息“game over”的警告框将出现。然而,在这个例子中,警告消息将总是出现,不管在条件语句之前存储在score中的值是什么。这是因为一个单个的等号是赋值操作符,因此,score=0把值0存储到score中。JavaScript解释器把一个赋值操作看做true,因此,不仅上面的代码总是弹出警告框,它还总是把score中的值重写为0。要避免这种错误,确保在测试两个值是否相等的时候使用两个等号符号:


if(score==0){

alert('game over');

}