js基础从入门到精通_18JS非布尔值的&&与,||或运算
/*
* && 与 || 或 非布尔值的情况
* && 与运算
* 对于非布尔值进行 与 或 运算时
* 会先将其转换为布尔值,然后再运算,并且返回原值
* 如果第一个值为 true 则返回第二值 (原值)
* 如果第一个值为false 则直接返回第一个值(原值)
* || 或运算
* 如果第一个值为 false 则返回第二值 (原值)
* 如果第一个值为true 则直接返回第一个值(原值)
* */
// true && true
// 与 运算 如果两个值都是 true 则返回 后面的值
var a = 1 && 2; // 返回2
a = 3 && 2;// 返回2
//如果两个值中有false,则返回靠前的 false
//false && true
a = 0 && 2; //0
a = 2 && 0; //0
//false && false
a = NaN && 0; //NaN
a = 0 && NaN; //0
console.log( "a = "+ a);
console.log( typeof a);
// ||或运算符
// true || true
//如果第一个值是true 则直接返回第一个值
var b = 1||2;
b = 1||NaN;
b = 1||0;
//如果第一个值是false 则直接返回第二个值
b = NaN||1;
b = 0 ||1;
console.log("b ="+ b);
console.log(typeof b);
var c = "" || "hello"
console.log("c ="+ c);
console.log(typeof c);