。
let n = 2;
n *= 3 5;
console.log( n ) ;
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
由于我們在運算式中使用了 "*=",我認為運算式應該是n = n * 3 5。如果運算式是n = n * 3 5,那么我們不應該得到11嗎?我得到的答案是16。誰能解釋一下為什么答案是16而不是11?
uj5u.com熱心網友回復:
因為它遵循操作的順序。 比*=有更高的優先級,所以如果我們在陳述句中添加括號來看得更清楚,它將是這樣的:
let n = 2;
n *= (3 5)
//這意味著n = n * (3 5)。
// which is n = n * 8
uj5u.com熱心網友回復:
好吧。 在第二行有一個隱藏的括號,這意味著,它必須看起來像這樣 n*=(3 5) >> 8 then 16
uj5u.com熱心網友回復:
它是基于優先級和順序的
。- /,*,% ---> 從左到右計算。
2. ,- ---> 從左到右計算
- =,-=,*=,/=,%=,&=,^=,|=,>>=,<<= --->從右到左計算
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/319991.html
標籤:
