var string = 'string'; var number = 0; var bool = true; console.log(number || string); console.log(number && string); console.log(bool || number); console.log(bool && number);
输出结果
如果换下string和num的位置呢
var string = 'string1';
var number = 10;
var bool = true;
console.log(string||number);
console.log(number && string);
console.log(bool || number);
console.log(bool && number);
结果为:
当console判断参数会先转为bool值
当遇到或运算时‘||’,会先判断第一个参数,如果第一个参数为真那么不再继续往下判断,直接输出前面参数, 第一个参数为false,判断第二个参数,为true输出,都为false,输出false
当遇到‘&&’运算,必须判断两个参数都为真,输出后面的参数 ,有一个为false,输出false