javascript - JS / TS中的“a | = b”如果开始有效,是什么意思?
问题描述
当我看到表情
let a : number = 3;
a = a + 5;
我立即将其重构为
let a : number = 3;
a += 5;
在这两种情况下,结果都是a===8(为了清楚起见,我添加了变量类型)。但是,相同模式的布尔表达式
let b : boolean = false;
b = b || true;
不等于
let b : boolean = false;
b |= true;
因为它产生一个数字。现在,该数字与true相关,因为它不是零(相反,它在相反的情况下对应于false,因为它返回零)。当然,这有一定的逻辑。
我无法解释为什么会发生这种情况,这让我很困扰。
所有示例都在 Chrome 的控制台中执行,我不完全确定是否由于我在浏览器中的操作或再现或其他原因导致从布尔值转换为数字。
解决方案
推荐阅读
- java - 如何在填充有多个数据集的区域图中添加单个标记?
- php - 从 php 执行 windows 快捷方式
- android - Android 设备上的 Xamarin 调试不起作用
- javascript - 返回为 [Object Object] 的评论
- javascript - 标识符“browserSync”已被声明
- python - FFT 分贝值不正确
- javascript - 为什么我的 'li' 没有被添加到控制台?
- python - 如何在列表中查找对象并在pygame中进行比较?
- javascript - 如何将可写缓冲区通过管道传输到 ReadStream?
- php - 何时(以及为什么何时)以及我应该如何在 php 中清理来自 POST JSON 的数据(这样输出可在 Swift 和 HTML 中使用)