數值轉換

Number()函數的轉換規則:

  • 如果是Boolean值,true和false將被分別轉化為1和0;
console.log(Number(true))  //1
console.log(Number(false))  //0
  • 如果是數字值,都會轉化為10進制返回;

    • 十進制,只是簡單的傳入和返回
    console.log(Number(13))  //13
    
    • 八進制(八進制的第一位必須是0,然后是八進制數字序列(0~7),如果數值超出了范圍,那么前導0將被忽略,后面的值將被當作十進制處理)
    console.log(Number(013))  //11
    console.log(Number(079))  //79
    
    • 十六進制(字面值的前兩位必須是0x,后面跟任何十六進制數字(0~9及A~F),其中,字母A~F可以大寫,也可以小寫。)
    console.log(Number(0x1a)) //26
    console.log(Number(0x79)) //121
    
  • 如果是null,返回0;

console.log(Number(null)) //0
  • 如果是undefined,返回NaN
console.log(Number(undefined)) //NaN
  • 如果是字符串,則遵循下面的規則:

    • 如果字符串中只飽含數字(包括前面帶正號和負號的情況),則將其轉化為十進制數值。
    console.log(Number("1"));  //1
    console.log(Number("123"));  //123
    console.log(Number("011"));  //11,注意前面的0被忽略了
    
    • 如果字符串中包含有效的浮點格式,則將其轉化為對應的浮點格式(同樣,也會忽略前面的0)
    console.log(Number("1.1"));  //1.1
    console.log(Number("0.123"));  //.123
    
    • 如果字符串中包含有效的十六進制格式,則將其轉化為相同大小的十進制整數值
    console.log(Number("0x23"));  //35
    
    • 如果字符串是空的(不包含任何字符),則將其轉化為0
    console.log(Number("")); //0
    
    • 如果字符串中包含除上述之外的字符,則將其轉化為NaN
    console.log(Number("Hello world")); //NaN
    
  • 如果是對象,則調用對象的valueOf()方法,然后依照前面的規則轉化返回的值。如果被轉化的結果為NaN,則調用對象的toString()方法,然后再次依照前面的規則轉化返回的字符串值。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 有 3 個函數可以把非數值轉換為數值:Number()、parseInt()和 parseFloat()。第一個函...
    會有貓惹閱讀 121評論 0 0
  • Javascript數值轉換一共有三種方法 Number(),通用 parseInt(),轉換字符串對象 pars...
    秋楓殘紅閱讀 163評論 0 0
  • 變量 聲明變量 命名變量區分大小寫的語言第一個字符是字母或下劃線_,數字不能作為第一個字符字符必須是字母,數字或者...
    flyingtoparis閱讀 834評論 0 0
  • 準備材料 雞爪 花椒 八角 干辣椒 冰糖(白砂糖也行) 生姜 料酒 老抽醬油 步驟 1、備料: ??將雞爪指甲剪掉...
    無揚人生閱讀 706評論 0 0
  • 女:喂,傻逼,老師來了 別睡了,老師來了 男:叫死啊,來了就來了 滾滾滾,別煩我 女:你 你這人咋這樣啊 我好心叫...
    尋遷柩閱讀 362評論 0 0