在学习javascript中,发现逻辑与&&、逻辑或||这两个运算符在变量赋值中的使用很特殊,和之前熟悉的PHP不同!
1、条件语句
条件语句,比如if判断,与和或的理解都是一样的,不存在异议:
(1)|| 当条件中有一个满足true,则进入语句执行
(2)&& 条件必须全部满足true,则进入语句执行
2、变量赋值
PHP:
$person = array();$param = $arr['name'] || 'Bom';var_dump($param); //true,在PHP中逻辑或仍然是条件判断性质,变量是一个布尔值var_dumo($param);//false , 在PHP中逻辑与也仍然是条件判断性质,变量是一个布尔值
JS的逻辑与和或理解是:
(1)|| 代表的是 如果左边的true就返回左边 否则返回右边
(2)&& 代表的是 如果左边返回的true就返回右边 否则返回左边
有什么用处?可以防止变量赋值的时候抛出typeError异常,或者说可以用来做变量默认值,比如:
var person= {}; //空对象var undefinedRes = person.name;//undefined ,尝试检索一个不存在的成员元素,返回 undefinedvar typeErrorRes = person.name.age;//typeError ,尝试检索一个undefined值,会导致typeError异常var status = person.name || "Bom";//Bom,用||取默认值Bom。person.name返回false,所以取逻辑或右边的值var name = person.name && "Bom";//undefined,person.name返回false,所以取逻辑与左边的值