javascript - 为什么输出是 16 而不是 11?
问题描述
我正在学习 javascript,我遇到了以下示例,
let n = 2;
n *= 3 + 5;
console.log( n );
由于我们在表达式中使用了“*=”,我认为表达式应该是 n = n * 3+5。如果表达式是 n = n * 3+5 那么我们不应该得到 11 吗?我得到16作为答案。有人可以解释为什么答案是 16 而不是 11 吗?
解决方案
因为它遵循操作顺序。+
如果我们在语句中添加括号以使其更清晰,则具有更高的优先级*=
,它将类似于:
let n = 2;
n *= (3 + 5)
// which means n = n * (3 + 5)
// which is n = n * 8
推荐阅读
- java - 基于每个键实现带锁的线程安全服务
- css - bootstrap 4中的三个相等的列
- php - 如何从句子中获取最后 n 个单词?
- caching - 在 MySQL 数据库中存储键值缓存(15kb JSON 值)是一种好的做法吗?
- java - StringUtils StripAccents 用问号替换重音字母
- ios - 当我回到 iOS xamarin.fomrs 中的上一个屏幕时,按钮消失了
- google-analytics - 为什么 gtag.js 需要 analytics.js
- android - 使用自定义适配器的自定义对象
- oauth - 小屏幕即智能手机上的 eBay oauth 令牌流
- php - Codeigniter 创建 0 字节文件我如何防止它?