在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>运行结果为:
第四个结果返回的是对象,返回结果不一定是布尔值!