这样一个代码:
Javascript:
var a = 1 && 2 && 3;//执行后的输出结果:3
如果在c语言:
int a=1 && 2 && 3;//执行后输出结果:1c语言好理解,逻辑运算后返回0或1,不知道Javascript为什么会产生这样结果,上网一查:
“a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。”谁给具体解释一下。
Javascript:
var a = 1 && 2 && 3;//执行后的输出结果:3
如果在c语言:
int a=1 && 2 && 3;//执行后输出结果:1c语言好理解,逻辑运算后返回0或1,不知道Javascript为什么会产生这样结果,上网一查:
“a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。”谁给具体解释一下。
&& 是指 有假则返回
|| 是指 有真则返回 alert( 0 && 1 )
alert( 0 || 1 )
var b = 1==1 && 2!=2 && 3==3;
if(a){}
if(b){}
其实就是布尔运算嘛
就是当a为真时返回第二个数。做为if判断时会转换为boolean类型。
而在c语言中,&& 和 || 将直接返回0或1(真、假)。
就是不同吧?
知道这个原理就不难理解啦
var a = (1 && 2) && 3;
先判断1&&2,结果返回2,然后判断 2&&3,返回3咯等号(==)
如果比较的两个元素类型不一样时要进行类型转换,规则如下:
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,不相等