Number() 函數(shù)的轉(zhuǎn)換規(guī)則

Number() 函數(shù)的轉(zhuǎn)換規(guī)則如下。

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

使用示例,我使用的是 QML 中使用的 JS 框架,console.log 為輸出 log 的語句:

var num1 = Number("Hello World!");
console.log("num1: ", num1);
var num2 = Number("");
console.log("num2: ", num2);
var num3 = Number("000011");
console.log("num3: ", num3);
var num4 = Number(true);
console.log("num4: ", num4);

輸出結(jié)果:

輸出結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容