本文適合JavaScript初學者。前端
一元正號運算符(+)位於其操做數前面,計算其操做數的數值,若是操做數不是一個數值,會嘗試將其轉換成一個數值。 儘管一元負號也能轉換非數值類型,可是一元正號是轉換其餘對象到數值的最快方法,也是最推薦的作法,由於它不會對數值執行任何多餘操做。程序員
一元正號能夠用於轉換數值字符串爲數字,好比以下代碼:數組
+ "123" // 123+ "12.3" // 12.3複製代碼
也能夠轉換二進制、16進制數值、天然底數的字符串:bash
+ "0x11" // 17+ "0b11" // 3+ "1e10" // 10000000000複製代碼
看起來 和parseFloat功能相似,可是parseFloat支持字符串後面部分不爲數字的狀況,一元正號卻不行,好比:架構
parseFloat("1px") // 1+ "1px" // NaN複製代碼
若是是空字符串或者多個空格組成的字符串,一元正號會轉換爲0,parseFloat 結果爲NaN職業規劃
+ ' ' // 0parseFloat(' ') // NaN複製代碼
負數形式字符串也能夠轉換成數值,可是對於十六進制 二進制不適用,對於天然底數適用(parseFloat 都適用):spa
+'-123' // 123+ "-0x11" // NaN+ "-0b11" // NaN+ "-1e10" // -10000000000複製代碼
一元正號轉換日期對象爲數字,獲得時間戳,好比以下代碼:code
+ new Date(); // 1561020101609複製代碼
至關於以下代碼:cdn
new Date().getTime(); // 1561020101609複製代碼
一元正號會把null轉換爲0,undefined 轉換爲NaN。一元正號施加於NaN,結果仍是NaN。代碼以下:對象
+ null // 0+ undefined // NaN+ NaN // NaN複製代碼
一元正號會把true 轉換爲1,false轉換爲0:
+ true;// 1+ false;// 0複製代碼
一元正號會把空數組[],轉換爲0。若是數組只有一個元素,切第一個元素爲數字或者字符串,會對第一個元素進行轉換,若是有多個元素,返回NaN,代碼以下:
+ []// 0+ ['123'] // 123+ [true] // NaN+ [1,2] // NaN複製代碼
一元正號運算符對於數字字符串和日期的轉換比較適用。
歡迎關注公衆號「ITman彪叔」。彪叔,擁有10多年開發經驗,現任公司系統架構師、技術總監、技術培訓師、職業規劃師。熟悉Java、JavaScript。在計算機圖形學、WebGL、前端可視化方面有深刻研究。對程序員思惟能力訓練和培訓、程序員職業規劃和程序員理財投資有濃厚興趣。