在Java和c++中||运算符返回的结果为布尔值,而在JavaScript中,||不一定返回布尔结果,它的运算规则为:返回第一个不为false的那个值(对象亦可),或者是返回最后一个值(如果全部都是false的话)。
而且,在逻辑运算中,0、“”、false、NaN、undefined均表示false。
下面是一段程序,各种情况下||的返回值,代码为:
<html>
<head>
<script language="javascript">
var a = 0;
var b = 5;
var c = a||b;
window.alert(c);
a = false;
b = true;
c = a||b;
window.alert(c);
a = 0;
b = "";
c = NaN;
d = false;
e = undefined;
f = a||b||c||d||e;
window.alert(f);
a = false;
b = new Object();
c = a||b;
window.alert(c + typeof c);
</script>
</head>
<body>
</body>
</html>
运行结果为:
第四个结果返回的是对象,返回结果不一定是布尔值!