js有六種原始類型:undefined、null、string、number、boolean、object(Array和Function都是特殊的Object),它們之間可以相互轉(zhuǎn)換
Number類型整數(shù)類型可以用四種進(jìn)制表示,最常見(jiàn)的是10進(jìn)制
10進(jìn)制
16進(jìn)制 以0x開(kāi)頭
8進(jìn)制 以0開(kāi)頭,如果后面包含0-7以外的數(shù)字,視為是10進(jìn)制
2進(jìn)制 以0b開(kāi)頭,如果后面包含0-1以外的數(shù)字,會(huì)報(bào)錯(cuò)
浮點(diǎn)數(shù),浮點(diǎn)數(shù)的保存空間是整數(shù)的兩倍,所以對(duì)于小數(shù)點(diǎn)后為空,或者小數(shù)點(diǎn)后為0的浮點(diǎn)數(shù),會(huì)直接轉(zhuǎn)換為整數(shù)保存。
1.0 1.
如果整數(shù)位為空,可以省略,例如
.123
但是這種方法不推薦,可以采用科學(xué)計(jì)數(shù)法來(lái)表示浮點(diǎn)數(shù)
1.123e10 .123E10
javascript數(shù)字同樣采用IEEE754數(shù)值的浮點(diǎn)計(jì)算,會(huì)出現(xiàn)舍入誤差
0.1 + 0.2 === 0.3 ? false
有幾個(gè)特殊的值
Number.MAX_VALUE Number.MIN_VALUE Number.NEGATIVE_INFINITY Number.POSITIVE_INFINITY -Infinity Infinity NaN
提供了全局的isNaN方法來(lái)判斷一個(gè)數(shù)是否是NaN,注意isNaN會(huì)嘗試將這個(gè)變量轉(zhuǎn)換成數(shù)字,如果不能轉(zhuǎn)換成數(shù)字,直接返回為true,能轉(zhuǎn)換成數(shù)字,不是NaN,返回false
類型轉(zhuǎn)換 其它類型轉(zhuǎn)換成booleanundefined/null => false "" => false 0/+0/-0/NaN => false 其余都轉(zhuǎn)換成true其它類型轉(zhuǎn)換成數(shù)字
其它類型轉(zhuǎn)換為數(shù)字有三個(gè)方法,Number()、parseInt()、parseFloat(),在變量前面加上+號(hào)等于調(diào)用Number方法
Number方法null => 0 undefined => NaN false => 0 true => 1
string:
1.只包含"整數(shù)"
2.只包含"浮點(diǎn)數(shù)"
3.只包含"十六進(jìn)制數(shù)"
4.只包含"二進(jìn)制數(shù)"
5.不識(shí)別"八進(jìn)制",會(huì)忽略前導(dǎo)的0
轉(zhuǎn)換成數(shù)字
6.其余情況都為NaN
"23" => 23 "1.23" => 1.23 "1." => 1 "1e2" => 100 "0xa" => 10 "0x10" => 2
object:
先調(diào)用valueOf,如果valueOf返回值為原始值,則轉(zhuǎn)換成數(shù)字,如果為對(duì)象,返回NaN,不會(huì)再對(duì)返回的對(duì)象進(jìn)行valueOf和toString的解析,如果沒(méi)有valueOf,則調(diào)用toStringparseInt方法
盡量解析,對(duì)于八進(jìn)制,es3引擎會(huì)解析為8進(jìn)制,es5引擎會(huì)忽略開(kāi)頭的0,為了減少這種歧義,可以為parseInt加上第二個(gè)參數(shù),用來(lái)指定進(jìn)制
注意:parseInt("")返回NaNparseFloat
忽略第二個(gè)小數(shù)點(diǎn)
其它類型轉(zhuǎn)換成string除了null和undefined都有toString方法,如果不清楚是否是null和undefined,可以使用String()方法
toString方法數(shù)字調(diào)用toString方法時(shí)可以加上參數(shù),用來(lái)確定是轉(zhuǎn)換成什么進(jìn)制的字符串
String方法如果該變量有toString方法,調(diào)用toString方法,包括object如果既有toString方法和valueOf方法,先調(diào)用toString方法。
如果null調(diào)用返回"null"
如果undefined調(diào)用返回"undefined"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/90777.html
摘要:在此,我們首先根據(jù)變量的作用域,將變量劃分為三級(jí),具體是全局變量局部變量和參數(shù)變量。 【摘要】本文是專為JavaScript入門者而總結(jié)的,總體上將JavaScript的基礎(chǔ)部分分成了九大塊,分別是變量、運(yùn)算符、數(shù)組、流程控制結(jié)構(gòu)、字符串函數(shù)、函數(shù)基礎(chǔ)、DOM操作基礎(chǔ)、文檔對(duì)象模型DOM和正則表達(dá)式。 【關(guān)鍵字】變量、運(yùn)算符、數(shù)組、流程控制結(jié)構(gòu)、函數(shù)、DOM、正則表達(dá)式。 本篇文章的主...
摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門很簡(jiǎn)單(普通入門),很多人通過(guò)網(wǎng)絡(luò)資源、書(shū)籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...
摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開(kāi)發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門很簡(jiǎn)單(普通入門),很多人通過(guò)網(wǎng)絡(luò)資源、書(shū)籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...
摘要:介紹編程數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配表單驗(yàn)證需要一門語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。 Javascript介紹編程(數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配)表單驗(yàn)證 需要一門語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。 瀏覽器廠商 網(wǎng)景 firefox js 標(biāo)準(zhǔn) js解釋器 IE js js解釋器 google js j...
摘要:邏輯運(yùn)算判斷一個(gè)變量會(huì)被當(dāng)做還是內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開(kāi)發(fā)。根據(jù)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。 變量類型和計(jì)算 1. 變量類型 js變量類型分為基本類型(或者叫值類型)和引用類型。(按照存儲(chǔ)方式區(qū)分)? 值類型 值類型:Number、String、Boolean、Null、Undefiend;...
閱讀 2858·2021-11-22 11:56
閱讀 3560·2021-11-15 11:39
閱讀 907·2021-09-24 09:48
閱讀 767·2021-08-17 10:14
閱讀 1331·2019-08-30 15:55
閱讀 2761·2019-08-30 15:55
閱讀 1318·2019-08-30 15:44
閱讀 2787·2019-08-30 10:59