标签:
在javaScript里&&运算和||运算使用非常频繁,但是在某种情况下你当真明白其中含义?
例如:今天分析JQ addClass方法的时候出现的这句
proceed = typeof value === "string" && value
刚看到的时候真是一头雾水,发现基础薄弱,还等什么,立马百度呀,于是找到一篇不错的文章 :
一、先来说说||(逻辑或),从字面上来说,只有前后都是false的时候才返回false,否则返回true。
alert(true||false); // true alert(false||true); // true alert(true||true); // true alert(false||false); // false
但是,从深层意义上来说的话,却有另一番天地,试下面代码
alert(0||1);
显然,我们知道,前面0意味着false,而后面1意味着true,那么上面的结果应该是true,而事实返回的结果是1。再看下面代码:
alert(0||“a”);
同样前面0是false “a” 是true。测试结果是“a”,继续看:
alert(0||false)
两边都是false,测试结果为false,为||号右边的值。
经过以上测试大家不难发现,以上代码只看||号左边的值,如果左边的值为false就取右边的值(无论右边的值是什么);那当||号左边的值为true呢?来看以下测试:
alert(2||1);
前面为true 后面也为true,测试结果 是 2,再来看一个:
alert(2 || 0)
前面2为true,后面0为false,结果为2。
这个测试觉得好简单,当然了我是为了说明一些事情:还是只看||号左边的值,如果值为true,就取左边的值(无论右边的值是什么)。(PS:右边可能不是亲生的)
【javaScript逻辑&&与逻辑或】alert(true&&"a")你知道弹出什么吗?
标签:
原文地址:http://www.cnblogs.com/yangzonglong/p/4306162.html