console.log(1&&2);和console.log(1||2);

console.log(1&&2);输出2
console.log(1||2);输出1
这是为什么

阅读 6.2k
6 个回答

&& 是与运算表达式,可以理解为当 && 前面的值为真时,执行 && 后面的表达式, && 前面的表达式为假时,返回false
|| 或运算表达式,可以理解为当 || 前面的值为假时,执行|| 后面的表达式。当 || 前面的表达式为真时,直接返回前面的表达式。

1转换为布尔值为真

  • &&继续往下执行到2
  • ||已经为真不往下走

请参考文档https://developer.mozilla.org...

Logical operators are typically used with Boolean (logical) values. When they are, they return a Boolean value. However, the && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value.

逻辑操作符在使用时,返回的是操作对象的值,是bool值返回bool值,是非bool值就返回非bool值

||逻辑或,判断为真就不再往后判断,
通常用来填充默认值 `var a = name || "unknown" ,name未定义则返回 "unknown"

&&逻辑与,只有前面为真才会继续后面判断。
通常用来在函数执行前判断参数是否有意义。args && func(args),只有args已经被赋值,才会执行func函数

&& 先计算左边表达式,如果它的值为false,那么返回左边表达式的值,否则返回右边表达式的值
|| 先计算左边表达式,如果它的值为true,那么返回左边表达式的值,否则返回右边表达式的值

短路与和短路或

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题