高程三第三章之數(shù)值轉換

有 3 個函數(shù)可以把非數(shù)值轉換為數(shù)值:Number()、parseInt()和 parseFloat()。第一個函數(shù),即轉型函數(shù) Number()可以用于任何數(shù)據(jù)類型,而另兩個函數(shù)則專門用于把字符串轉換成數(shù)值。這 3 個函數(shù)對于同樣的輸入會有返回不同的結果。

Number()函數(shù)的轉換規(guī)則如下。
  • 如果是 Boolean 值,true 和 false 將分別被轉換為 1 和 0。
  • 如果是數(shù)字值,只是簡單的傳入和返回。
  • 如果是 null 值,返回 0。
  • 如果是 undefined,返回 NaN。
  • 如果是字符串,遵循下列規(guī)則:
  • 如果字符串中只包含數(shù)字(包括前面帶正號或負號的情況),則將其轉換為十進制數(shù)值,即"1"會變成 1,"123"會變成 123,而"011"會變成11(注意:前導的零被忽略了);
    • 如果字符串中包含有效的浮點格式,如"1.1",則將其轉換為對應的浮點數(shù)值(同樣,也會忽
      略前導零);
    • 如果字符串中包含有效的十六進制格式,例如"0xf",則將其轉換為相同大小的十進制整
      數(shù)值;
    • 如果字符串是空的(不包含任何字符),則將其轉換為 0;
    • 如果字符串中包含除上述格式之外的字符,則將其轉換為 NaN。
    • 如果是對象,則調用對象的 valueOf()方法,然后依照前面的規(guī)則轉換返回的值。如果轉換的結果是 NaN,則調用對象的 toString()方法,然后再次依照前面的規(guī)則轉換返回的字符串值。

由于 Number()函數(shù)在轉換字符串時比較復雜而且不夠合理,因此在處理整數(shù)的時候更常用的是parseInt()函數(shù)。parseInt()函數(shù)在轉換字符串時,更多的是看其是否符合數(shù)值模式。它會忽略字符串前面的空格,直至找到第一個非空格字符。如果第一個字符不是數(shù)字字符或者負號,parseInt()就會返回 NaN;也就是說,用parseInt()轉換空字符串會返回 NaN(Number()對空字符返回 0)。如果第一個字符是數(shù)字字符,parseInt()會繼續(xù)解析第二個字符,直到解析完所有后續(xù)字符或者遇到了一個非數(shù)字字符。例如,"1234blue"會被轉換為 1234,因為"blue"會被完全忽略。類似地,"22.5"會被轉換為 22,因為小數(shù)點并不是有效的數(shù)字字符。
??這個函數(shù)提供第二個參數(shù):轉換時使用的基數(shù)(即多少進制)。如果知道要解析的值是十六進制格式的字符串,那么指定基數(shù) 16 作為第二個參數(shù),可以保證得到正確的結果,例如:var num = parseInt("0xAF", 16); //175。實際上,如果指定了 16 作為第二個參數(shù),字符串可以不帶前面的"0x",如下所示:

var num1 = parseInt("AF", 16); //175
var num2 = parseInt("AF"); //NaN

parseFloat()只解析十進制值。輸出可以為整數(shù)。十六進制格式的字符串始終轉化為0。例如:

parseFloat("1.0000"); //輸出1
parseFloat(0xA); // 輸出10,因為輸入為數(shù)字
parseFloat("0xA"); //輸出0,因為輸入為字符串
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 什么是 JavaScript 語言? JavaScript 是一種輕量級的腳本語言。所謂“腳本語言”(script...
    oWSQo閱讀 1,914評論 0 1
  • 第1章 JavaScript 簡介 JavaScript 具備與瀏覽器窗口及其內容等幾乎所有方面交互的能力。 歐洲...
    力氣強閱讀 1,292評論 0 0
  • 這可能是,不,這確實是一篇引不起別人有讀下去的興趣的文章,或者說也不是文章,就是一篇抒發(fā)心情,也可能是傳...
    青菜與蘋果閱讀 493評論 0 0

友情鏈接更多精彩內容