a=a&&b
捞干的
说人话:&& 运算符赋值,前面为true就赋值为后参数,前面为false就赋值为前参数
// 在JS中 大于0 非空 true !null 都可被理解为true
var a = 1;
var b = true;
// 而 0,null, false, undefind, ""(空字符串) 都被理解为false
var c = 0;
var d = false;
// && 运算符赋值,前面为true就赋值为后参数,前面为false就赋值为前参数
var test1 = a && b; //test1 = true
var test2 = a && d; //test2 = false
var test3 = c && b; //test3 = 0;
var test4 = c && d; //test4 = 0;
详细分析:
&&可以理解为一个短路“与”,运算符前后都为 【true】时 才是【true】
当前参数为false时,该运算符立即停止运算,不计算和运行后参数,并返回false
在JS灵活的语法中,这一特性就被赋予了更灵活的用法
就变成了返回前参数
a=a||b
捞干的
说人话:&& 运算符赋值,前面为true就赋值为前参数,前面为false就赋值为后参数
// 在JS中 大于0 非空 true !null 都可被理解为true
var a = 1;
var b = true;
// 而 0,null, false, undefind, ""(空字符串) 都被理解为false
var c = 0;
var d = false;
// || 运算符赋值,前面为true就赋值为前参数,前面为false就赋值为后参数
var test1 = a || b; //test1 = 1
var test2 = a || c; //test2 = 1
var test3 = c || b; //test3 = true;
var test4 = c || d; //test4 = false;
详细说明:
|| 为或,运算符前后都为 【false】时 才是【false】
当前参数为true时,该运算符立即停止运算,不计算和运行后参数,并返回true
↑在JS中就变成了返回前参数
运算符原理:
&&:两个都是ture才是true;一个是false就是false
|| : 两个都是false才是false; 一个是ture 就是ture