javascript - 为什么在 javascript 中对数字使用逻辑运算符会出现以下结果

标签 javascript

我在一次采访中被问到以下内容会记录什么:

  1. console.log(1||2);//logs 1
    
  2. console.log(1&&2);//logs 2
    

演示

console.log(1||2,1&&2)

但是为什么呢?他们是如何评估的?

如果重复,我很抱歉:(

最佳答案

这就是这些逻辑运算符在 Javascript 中的实现方式。

我认为可以通过查看短路评估的工作原理来解释其工作背后的直觉。

例如,对于||,如果您知道左侧是真实的,则无需检查右侧(因为无论如何结果都是真实的) - 因此它直接返回左侧的内容。

对于&&,仅左侧为真还不够,还必须检查右侧。如果右侧也为真,则返回右侧的内容。

更多详情here

关于javascript - 为什么在 javascript 中对数字使用逻辑运算符会出现以下结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50197494/

相关文章:

javascript - 链接 Protractor 中的所有语句

javascript - 创建loopbackjs应用程序时出现gitignore错误

javascript - 如何更改 Google 组织结构图链接线颜色和粗细?

javascript - 如何打印或保存在线编辑的图像(使用javascript/jQuery)?

javascript - 如何根据浏览器特征识别访问者?

php - 处理来自 AJAX 请求的数据

javascript - 调整大小时链接变为空白

javascript - 使用 jQuery 的 POST 方法向所有 ajax 调用添加参数

javascript - 为什么可以使用 .text 访问 header 元素中的内容,而使用 JavaScript 中的 innerHTML 访问 p 元素中的内容

javascript - Vanilla JS 视差卡顿