资源描述:
《javascript逻辑运算符》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、javascript逻辑运算符“
2、
3、”和“&&”一、先来说说
4、
5、(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true。alert(true
6、
7、false);//truealert(false
8、
9、true);//truealert(true
10、
11、true);//truealert(false
12、
13、false);//false复制代码但是,从深层意义上来说的话,却有另一番天地,试下面代码alert(0
14、
15、1);显然,我们知道,前面0意味着false,而后面1意味着true,
16、那么上面的结果应该是true,而事实返回的结果是1。再看下面代码:alert(2
17、
18、1);我们知道,前面2是true,后面1也是true,那返回结果又是什么呢?测试结果是2,继续看:alert('a'
19、
20、1);同样,前面'a'是true,后面1也是true;测试结果是'a',下面alert(''
21、
22、1);由上,我们知道前面''是false,后面1是true,而返回结果是1。再看下面alert('a'
23、
24、0); 前面'a'是true,而后面0是false,返回结果是'a',继续下面alert('a'
25、
26、
27、'b'); 前面'a'是true,后面'b'是false,返回结果是'a',我们继续下面alert(''
28、
29、0); 前面''是false,后面0同样是false,返回结果是0alert(0
30、
31、'');前面0是false,后面''是false,返回结果是'' 这就意味1、只要“
32、
33、”前面为false,不管“
34、
35、”后面是true还是false,都返回“
36、
37、”后面的值。2、只要“
38、
39、”前面为true,不管“
40、
41、”后面是true还是false,都返回“
42、
43、”前面的值。 --------------------
44、--------------------------------------------------------------------------------------二、下面说说&&(逻辑与),从字面上来说,只有前后都是true的时候才返回true,否则返回false。alert(true&&false);//falsealert(true&&true);//truealert(false&&false);//falsealert(false&&true);//false复制代码然后,根据上面经
45、验,我们看看“&&”号前后,不单单是布尔类型的情况。alert(''&&1);结是返回'',“&&”前面''是false,后面是1是true。alert(''&&0);结是返回'',“&&”前面''是false,后面是0也是false。alert('a'&&1);结是返回1,“&&”前面''a是true,后面是1也是true。alert('a'&&0);结是返回0,“&&”前面''a是true,后面是0是false。alert('a'&&'');结是返回'',“&&”前面''a是true,后面是''是
46、false。alert(0&&'a');结是返回0,“&&”前面''0是false,后面是'a'是true。alert(0&&'');结是返回0,“&&”前面''0是false,后面是''也是false。 这意味着1、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;2、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值; 让我们总结一下:1、只要“
47、
48、”前面为false,无论“
49、
50、”后面是true还是f
51、alse,结果都返回“
52、
53、”后面的值。2、只要“
54、
55、”前面为true,无论“
56、
57、”后面是true还是false,结果都返回“
58、
59、”前面的值。3、只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;4、只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;由上两个测试可知,逻辑运算符,“
60、
61、”和“&&”都是遵行短路原则,只要确定符号前面的真假,既可确定返回值。需要说明的是“&&”的优先级是高于“
62、
63、”的,下面测试
64、:alert(1
65、
66、'a'&&2);返回结果是1。根据反证原理,我们假设“
67、
68、”的优先级不低于“&&”(这里只所以用“不低于”,是为了同时证明等级相同的情况)。根据上面我们得出的结论(1),(1
69、
70、'a')将返回前面的值1,(1&&2)根据结论(4)应该返回后面的值2。这显然不对,由此可知“&&”的优先级是高于“
71、
72、”的。JavaScript逻辑运算符及优先级时间:2011年07月06日作者:愚人码头查看次数:3,130views评论次数:12今天看了一