<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
var arr=[0,'',false,null,undefined,NaN];
for(var i=0;i<arr.length;i++){
if(arr[i]==false){
alert('第'+(i+1)+'个元素值为假');
}
else{
alert('第'+(i+1)+'个元素值为真');
}
}
</script>
</body>
</html>
为什么前三个弹出“为假”,后三个弹出“为真”呢?!不应该呀。
但是,把 if(arr[i]==false)改为 if(!arr[i])就能得到预期的结果,数组元素全部转换为逻辑假。不太理解……
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
var arr=[0,'',false,null,undefined,NaN];
for(var i=0;i<arr.length;i++){
if(arr[i]==false){
alert('第'+(i+1)+'个元素值为假');
}
else{
alert('第'+(i+1)+'个元素值为真');
}
}
</script>
</body>
</html>
为什么前三个弹出“为假”,后三个弹出“为真”呢?!不应该呀。
但是,把 if(arr[i]==false)改为 if(!arr[i])就能得到预期的结果,数组元素全部转换为逻辑假。不太理解……