日期:2014-05-16  浏览次数:20315 次

关于逻辑运算的问题、
这样一个代码:
Javascript:
var a = 1 && 2 && 3;//执行后的输出结果:3
如果在c语言:
int a=1 && 2 && 3;//执行后输出结果:1

c语言好理解,逻辑运算后返回0或1,不知道Javascript为什么会产生这样结果,上网一查:
“a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。”

谁给具体解释一下。

------解决方案--------------------
js是所类型,在逻辑判断中,会将值转换为boolean值。
&& 是指 有假则返回
|| 是指 有真则返回
JScript code

            alert( 0 && 1 )
            alert( 0 || 1 )

------解决方案--------------------
var a = 1==1 && 2==2 && 3==3;
var b = 1==1 && 2!=2 && 3==3;
if(a){}
if(b){}


其实就是布尔运算嘛
------解决方案--------------------
参考资料:ECMAScript Boolean 运算符
------解决方案--------------------
&&和||没有强制返回值必须是boolean值
------解决方案--------------------
“a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。”
知道这个原理就不难理解啦
var a = (1 && 2) && 3;
先判断1&&2,结果返回2,然后判断 2&&3,返回3咯

HTML code
等号(==)
如果比较的两个元素类型不一样时要进行类型转换,规则如下:
1. 如果有一个是Boolean类型,一个是数字类型,则将Boolean类型转化成数字,false转化成0,true转成1
2. 如果有一个是字符串类型,一个是数字类型,则把字符串转化成数字
3. 如果有一个是字符串类型,一个是对象类型,则把对象转化成字符串(toString())
4. 如果有一个是对象类型,一个是数字类型,则把对象转化成数字
5. null和undefined相等
6. 不能把null和undefined转化成其他值
7. 如果有一个为NaN,等号返回false,非等号返回true。即使两个都是NaN,等号任然返回false
8. 如果两个元素是对象,这比较的是他们的引用值。如果俩个运算数指向同一个对象,那么等号返回true,不相等