国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript Number()方法和ParseInt()/ParseFloat()方法的轉(zhuǎn)換

Simon_Zhou / 1542人閱讀

摘要:在項(xiàng)目開發(fā)中我們經(jīng)常會(huì)用到轉(zhuǎn)型方法,尤其是這種松散型的語(yǔ)言。其中比較常用的方法就是方法和方法了,下面我們分別對(duì)這幾種方法的轉(zhuǎn)型機(jī)制進(jìn)行詳細(xì)地說明。

在項(xiàng)目開發(fā)中我們經(jīng)常會(huì)用到轉(zhuǎn)型方法,尤其是JS這種松散型的語(yǔ)言。其中比較常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我們分別對(duì)這幾種方法的轉(zhuǎn)型機(jī)制進(jìn)行詳細(xì)地說明。

Number()

如果傳入的參數(shù)為字符串,則遵循以下規(guī)則:

如果字符串中只包含數(shù)字,則返回相應(yīng)的數(shù)字值(前導(dǎo)的0會(huì)被忽略)

如果包含浮點(diǎn)和負(fù)號(hào),則返回相應(yīng)的小數(shù)或負(fù)數(shù)

如果是16進(jìn)制數(shù)字,則返回相應(yīng)的10進(jìn)制數(shù)

如果包含空格,則開始和結(jié)束的空格會(huì)被忽略,如果中間包含空格則會(huì)返回NaN

如果是空字符串,則返回0

如果包含除去以上情況的其它字符,則返回NaN

如果傳入的參數(shù)為true/false,則返回1/0

如果傳入的參數(shù)為null,則返回0

如果傳入的參數(shù)為undefined,則返回NaN

如果是數(shù)字,則簡(jiǎn)單的返回?cái)?shù)字值

如果是對(duì)象,則調(diào)用對(duì)象的valueOf()方法,將所得值按照以上規(guī)則進(jìn)行轉(zhuǎn)型,如果得到NaN,再調(diào)用對(duì)象的toString()方法,將所得的值按以上規(guī)則進(jìn)行轉(zhuǎn)型

總體來說Number()方法的轉(zhuǎn)型機(jī)制比較復(fù)雜且難懂,一般我們手動(dòng)調(diào)用轉(zhuǎn)型方法會(huì)使用parseInt()/parseFloat()方法進(jìn)行轉(zhuǎn)型,下面介紹這兩個(gè)方法的轉(zhuǎn)型機(jī)制。

parseInt()/parseFloat()

如果傳入的參數(shù)為字符串,則則從第0個(gè)位置開始,找到第一個(gè)非空格字符,如果第一個(gè)非空格字符不是數(shù)字或-號(hào),則返回NaN,如果是數(shù)字或-號(hào),則繼續(xù)往下尋找,直到找到非數(shù)字字符,然后忽略后面的內(nèi)容,返回前面找到的數(shù)字值(前導(dǎo)的空格會(huì)被忽略,中間的空格則會(huì)當(dāng)成非數(shù)字字符處理)

如果是boolean,null,undefined類型值,則返回NaN

如果需要對(duì)8進(jìn)制或者16進(jìn)制的數(shù)進(jìn)行轉(zhuǎn)型,ECMAScript 3和ECMAScript 5有所不同,所以推薦傳入第二個(gè)參數(shù),即進(jìn)制數(shù)

如果是對(duì)象,則調(diào)用對(duì)象的toString()方法,將所得值再按照以上方法進(jìn)行轉(zhuǎn)型

*以上只說明了parseInt()方法的機(jī)制,parseFloat()方法與其只有一個(gè)區(qū)別,即parseFloat()方法遇到第一個(gè)浮點(diǎn)會(huì)繼續(xù)往下尋找

下面舉一些典型的例子,對(duì)以上機(jī)制進(jìn)行驗(yàn)證和說明

console.log(Number("12a"));      //NaN
console.log(Number(""));         //0
console.log(Number(null));       //0
console.log(Number(undefined));  //NaN
console.log(Number(true));       //1
console.log(Number(false));      //0
console.log(Number([]);          //0
console.log(parseInt("-1-2a"));  //-1
console.log(parseInt("-a2a"));   //NaN
console.log(parseInt(" 12a"));   //12
console.log(parseInt("1 2a"));   //1
console.log(parseInt(""));       //NaN
console.log(parseInt(null));     //NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt(true));     //NaN
console.log(parseInt(false));    //NaN
console.log(parseInt([]));       //NaN

以上便是所總結(jié)的Number()和parseInt()/parseFloat()方法的轉(zhuǎn)型機(jī)制,特別說明:大部分規(guī)則摘自《JavaScript高級(jí)程序設(shè)計(jì)第三版》。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/82179.html

相關(guān)文章

  • javascript高級(jí)程序設(shè)計(jì)》筆記:Number數(shù)值轉(zhuǎn)換

    摘要:數(shù)值轉(zhuǎn)換對(duì)個(gè)人而言是非常重要的,這也是本人單獨(dú)拉出來總結(jié)的一個(gè)原因。在此也僅針對(duì)顯示轉(zhuǎn)換做點(diǎn)文章,隱式轉(zhuǎn)換同樣會(huì)單獨(dú)拉出來總結(jié)有個(gè)函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值和。如果是值,和將分別被轉(zhuǎn)換為和。如果是數(shù)字值,只是簡(jiǎn)單的傳入和返回。 數(shù)值轉(zhuǎn)換對(duì)個(gè)人而言是非常重要的,這也是本人單獨(dú)拉出來總結(jié)的一個(gè)原因。在此也僅針對(duì)顯示轉(zhuǎn)換做點(diǎn)文章,隱式轉(zhuǎn)換同樣會(huì)單獨(dú)拉出來總結(jié) 有 3 個(gè)函數(shù)可以把非數(shù)值轉(zhuǎn)換為...

    kid143 評(píng)論0 收藏0
  • javascript數(shù)值轉(zhuǎn)換

    摘要:函數(shù)在轉(zhuǎn)換字符串時(shí),更多的是看其是否符合數(shù)值模式。例如,會(huì)被轉(zhuǎn)換為,因?yàn)闀?huì)被完全忽略。類似地,會(huì)被轉(zhuǎn)換為,因?yàn)樾?shù)點(diǎn)并不是有效的數(shù)字字符。指定基數(shù)會(huì)影響到轉(zhuǎn)換的輸出結(jié)果。舉例來說,將會(huì)被轉(zhuǎn)換為。但十六進(jìn)制格式的字符串則始終會(huì)被轉(zhuǎn)換成。 以下三個(gè)函數(shù)將非數(shù)值轉(zhuǎn)換為數(shù)值:Number() 、parseInt()和 parseFloat() Number()的轉(zhuǎn)換規(guī)則 Boolean值 ...

    qianfeng 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)類型轉(zhuǎn)換

    摘要:本文主要介紹數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換和自動(dòng)轉(zhuǎn)換,自動(dòng)轉(zhuǎn)換是基于強(qiáng)制轉(zhuǎn)換之上。強(qiáng)制轉(zhuǎn)換主要指使用和三個(gè)函數(shù),手動(dòng)將各種類型的值,分布轉(zhuǎn)換成數(shù)字字符串或者布爾值。 前言 JavaScript是一門動(dòng)態(tài)語(yǔ)言,所謂的動(dòng)態(tài)語(yǔ)言可以暫時(shí)理解為在語(yǔ)言中的一切內(nèi)容都是不確定的。比如一個(gè)變量,這一時(shí)刻是個(gè)整型,下一時(shí)刻可能會(huì)變成字符串了。雖然變量的數(shù)據(jù)類型是不確定的,但是各種運(yùn)算符對(duì)數(shù)據(jù)類型是有要求的。如果運(yùn)算...

    blastz 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)類型轉(zhuǎn)換

    摘要:本文主要介紹數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換和自動(dòng)轉(zhuǎn)換,自動(dòng)轉(zhuǎn)換是基于強(qiáng)制轉(zhuǎn)換之上。強(qiáng)制轉(zhuǎn)換主要指使用和三個(gè)函數(shù),手動(dòng)將各種類型的值,分布轉(zhuǎn)換成數(shù)字字符串或者布爾值。 前言 JavaScript是一門動(dòng)態(tài)語(yǔ)言,所謂的動(dòng)態(tài)語(yǔ)言可以暫時(shí)理解為在語(yǔ)言中的一切內(nèi)容都是不確定的。比如一個(gè)變量,這一時(shí)刻是個(gè)整型,下一時(shí)刻可能會(huì)變成字符串了。雖然變量的數(shù)據(jù)類型是不確定的,但是各種運(yùn)算符對(duì)數(shù)據(jù)類型是有要求的。如果運(yùn)算...

    chaos_G 評(píng)論0 收藏0
  • JavaScript數(shù)據(jù)類型轉(zhuǎn)換

    摘要:本文主要介紹數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換和自動(dòng)轉(zhuǎn)換,自動(dòng)轉(zhuǎn)換是基于強(qiáng)制轉(zhuǎn)換之上。強(qiáng)制轉(zhuǎn)換主要指使用和三個(gè)函數(shù),手動(dòng)將各種類型的值,分布轉(zhuǎn)換成數(shù)字字符串或者布爾值。 前言 JavaScript是一門動(dòng)態(tài)語(yǔ)言,所謂的動(dòng)態(tài)語(yǔ)言可以暫時(shí)理解為在語(yǔ)言中的一切內(nèi)容都是不確定的。比如一個(gè)變量,這一時(shí)刻是個(gè)整型,下一時(shí)刻可能會(huì)變成字符串了。雖然變量的數(shù)據(jù)類型是不確定的,但是各種運(yùn)算符對(duì)數(shù)據(jù)類型是有要求的。如果運(yùn)算...

    Julylovin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<