var iIndex=0;
if(iIndex=1){//少写了一个等号(=),应该是双等号(==)
}
alert(iIndex.toString());//弹出结果为“1”
var iIndex=0;
if(iIndex==1){
}
alert(iIndex.toString());//弹出结果为“0”
var iIndex = 0;
while (iIndex = 1) {//少写了一个等号(=),应该是双等号(==) 死循环
alert(iIndex.toString());//iIndex结果为“1”
}
var iIndex = 0;
while (iIndex == 1) {
}
alert(iIndex.toString());//弹出结果为“0”
var iIndex = 0;
do {
alert(iIndex.toString());//iIndex结果为“1”
}while (iIndex = 1);//少写了一个等号(=),应该是双等号(==) 死循环
var iIndex = 0;
do {
alert(iIndex.toString());
} while (iIndex == 1);
alert(iIndex.toString());//弹出结果为“0”
JS中Boolean(iIndex = 1)的结果为
true
这个问题可以解释的更加清楚些:
⒈赋值运算符(=
)是“右结合”的,计算顺序是从右到左,即从右边开始计算
⒉一个表达式总是会有返回值的:
①单值表达式的结果就是是值本身
②其他表达式结果是根据运算符进行运算的结果值
⒊类似于 if 这样的语句会自动调用Boolean()转换函数
结合上面三点的可以得出 iIndex = 1 表达
式的值是1,
而Boolean(iIndex = 1) 也就是Boolean(1)
的结果是true。