gpt4 book ai didi

javascript - 为什么这个 Javascript 代码块中需要 ()?

转载 作者:行者123 更新时间:2023-12-04 03:54:19 24 4
gpt4 key购买 nike

我知道 javascript 中有很多陷阱,但我仍然不明白表达式 a&1 和 (a&1) 之间有什么区别??

以下代码尝试将 11(10 基)转换为字符串 1101(2 基)

<script>
var str = '';
var a = 11;
for(var i=0;a;i++){
str = a & 1 + str; // this doesn't work must rewrite as
// str = (a & 1) + str;
console.log('str = ' + str);
a >>>=1;
}
console.log(str);
</script>

最佳答案

是因为operator precedence

Addition优先级高于 Bitwise AND .因此,当评估 a & 1 + str 时,首先评估 1 + str,然后评估 a & result

使用 Grouping Operator我们可以更改评估顺序。所以当 (a & 1) + str 被评估时, () (a & 1) 中的内容首先被评估 result + str 被评估。

关于javascript - 为什么这个 Javascript 代码块中需要 ()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com