[ js ] Javascript 的連續運算式

看板Ajax作者 (呵呵)時間12年前 (2012/02/01 16:37), 編輯推噓1(104)
留言5則, 5人參與, 最新討論串1/1
之前有寫一個小程式,結果一直錯誤,抓不到 bug 後來才發現是 js 本身的特性問題 簡單的測試 var a=1, b=2; a+=b+=a+=b; alert(a+','+b); 會發現 js 跑出來最後答案是 (a,b)=(6,5),Chrome/Firefox/Safari 答案一致 但是過去我學過的所有程式語言,都告訴我答案應該是 (8,5) 在傳統的程式語言裡,assignment statement 一定是等右邊的結果出來後, 左邊的變數才用新值接下去運算。 但在 js 裡,一開始的 a 已經給了 value=1 不知道這是 js 本身的規範,還是瀏覽器的 js engine 為了加速所做的妥協? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.197.209

02/01 16:41, , 1F
alert會有問題..請用console 這問題已經算是老梗了
02/01 16:41, 1F

02/01 16:49, , 2F
C&C++版 Rule 8.
02/01 16:49, 2F

02/01 17:07, , 3F
原來是老梗... 沒遇過就沒有特別去查
02/01 17:07, 3F

02/02 02:07, , 4F
console.log(a+','+b);結果一樣是(6,5)啊
02/02 02:07, 4F

02/02 12:34, , 5F
02/02 12:34, 5F
文章代碼(AID): #1FAFd5-J (Ajax)