標籤:方式 作用 也會 script parse 加法 運算子 asc type
大多數人都熟悉一元加法和一元減法,它們在 ECMAScript 中的用法與您高中數學中學到的用法相同。
一元加法本質上對數字無任何影響:
1 var iNum = 20;2 iNum = +iNum;3 alert(iNum); //輸出 "20"
這段代碼對數字 20 應用了一元加法,返回的還是 20。
儘管一元加法對數字無作用,但對字串卻有有趣的效果,會把字串轉換成數字。
1 var sNum = "20";2 alert(typeof sNum); //輸出 "string"3 var iNum = +sNum;4 alert(typeof iNum); //輸出 "number"
這段代碼把字串 "20" 轉換成真正的數字。當一元加法運算子對字串進行操作時,它計算字串的方式與 parseInt() 相似,主要的不同是只有對以 "0x" 開頭的字串(表示十六進位數字),一元運算子才能把它轉換成十進位的值。因此,用一元加法轉換 "010",得到的總是 10,而 "0xB" 將被轉換成 11。(對“7b”這樣的字串無法計算,返回NaN)
另一方面,一元減法就是對數值求負(例如把 20 轉換成 -20):
1 var iNum = 20;2 iNum = -iNum;3 alert(iNum); //輸出 "-20"
與一元加法運算子相似,一元減法運算子也會把字串轉換成近似的數字,此外還會對該值求負。例如:
1 var sNum = "20";2 alert(typeof sNum); //輸出 "string"3 var iNum = -sNum;4 alert(iNum); //輸出 "-20"5 alert(typeof iNum); //輸出 "number"
在上面的代碼中,一元減法運算子將把字串 "-20" 轉換成 -20(一元減法運算子對十六進位和十進位的處理方式與一元加法運算子相似,只是它還會對該值求負)。
js中的一元加法和一元減法