javascript - javascript逻辑运算符的混乱
问题描述
我对以下输出感到困惑。
> console.log('0&&1')
0&&1 // ok
> console.log(0&&1)
0 //ok
但是当我控制下面的表达式时,它会给出 1。所以请帮助我理解这个概念
> console.log('0&&1'+0&&1)
1
解决方案
+
的优先级高于&&
。所以你的最后一个片段基本上相当于:
console.log(('0&&1' + 0) && 1)
这将变成这样:
console.log('0&&10' && 1)
由于非空字符串是真值,因此返回值为 1。
推荐阅读
- javascript - 画布上没有画线
- android - 添加字符时,跨区字符串失去粗体样式
- sparql - 如何查询从 sparql wh 类推理的个人
- xamarin - 主详细信息页面中的后退按钮 xamarin forms prism
- android - 尝试在空对象引用(android 片段)上写入字段 'android.view.View android.support.v4.app.Fragment.mView'
- css - Rails:发送带有嵌入图像的电子邮件
- android - 从服务器发送通知时,remoteMessage.getNotification() 始终为空 - Android
- d3.js - 如何从 dc js 图表中的 x 轴删除周末日期
- java - 在 ControllerAdvice 之前捕获反序列化异常
- android - 错误:错误:''与属性 android:background (attr) 参考不兼容|颜色