javascript - z=z=z++裡的執行過程
滿天的星座
滿天的星座 2017-07-05 10:50:36
0
6
1002
var z = 0;
z=z=z++;
alert(z);

彈跳窗是0,為什麼?

var z = 0;
z++;z=z;
alert(z);

的區別?

滿天的星座
滿天的星座

全部回覆(6)
小葫芦

好奇你這是為了做題還是你在哪個開源專案的程式碼中看到過作者使用這樣的書寫方式, 如果是為了做題或筆試, 建議不要考慮這樣的學校或公司. 因為此題毫無意義, swift3甚至去掉了++運算子, 人生短暫, 把時間浪費在讓人confusing或容易出錯的語法特性上不值.

大家讲道理

兩點:

  1. a = a++ 先賦值,後自增

  2. 賦值表達式是有回傳值的,簡稱為表達式的值

z=z=z++; 

相當於將“z=z++”表達式的值賦值給z,而“z=z++”的值等於“z++”,“z++”先使用z當前值,後自增

给我你的怀抱

後置自增:
n++這樣的表達式會傳回一個n原始值的副本,然後將n原始值++
n = n++ 後置自增運算符的優先權高於賦值
所以=右側會先將n自增並回傳n的原始值副本
然後進行賦值運算將n的原始值賦值給n,所以n的值不變

阿神

z++是個表達式,表達式的結果還是z,所以z=z++相當於z=z 啥也沒做,
你要了解下++z++ 啥也沒做,

你要了解下++

z++ 的邏輯是先返回變數值,然後才自增。

或你用🎜++z🎜,前自增是先自增,然後回傳自增後的結果🎜
我想大声告诉你

等價於

a=z++;
z=a;
z=z;
阿神

++ 和= 運算順序的問題 建議看一下 運算 賦值的優先權

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板