大家好,我是IT修真院深圳分院第04期學(xué)員斋陪,一枚正直善良的web程序員朽褪。
今天給大家分享一下,修真院官網(wǎng) js任務(wù)中可能會(huì)使用到的知識(shí)點(diǎn):
JS有哪些數(shù)據(jù)類型和常用方法无虚?
1.背景介紹
JavaScript
一種直譯式腳本語言缔赠,是一種動(dòng)態(tài)類型、弱類型友题、基于原型的語言嗤堰,內(nèi)置支持類型。它的解釋器被稱為JavaScript引擎度宦,是瀏覽器的一部分踢匣,廣泛用于客戶端的腳本語言,最早是在HTML(超文本標(biāo)記語言)網(wǎng)頁(yè)上使用戈抄,用來給HTML網(wǎng)頁(yè)增加動(dòng)態(tài)功能离唬。
2.知識(shí)剖析
2.1 JS有哪些數(shù)據(jù)類型?
JavaScript 語言的每一個(gè)值划鸽,都屬于某一種數(shù)據(jù)類型输莺。JavaScript 的數(shù)據(jù)類型戚哎,共有七種。分別是undefined嫂用、null型凳、boolean、number嘱函、string啰脚、object、Symbol实夹。
1)UNDEFINED:UNDEFINED類型只有一個(gè)值橄浓,即特殊值UNDEFINED。在使用VAR聲明變量亮航,但未對(duì)其加以初始化時(shí)荸实,這個(gè)變量值就是UNDEFINED。
2)NULL:NULL類型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類型缴淋。其特殊值就是NULL准给。從邏輯角度上看,NULL是一個(gè)空的對(duì)象指針重抖。而這也正是使用TYPEOF操作符檢測(cè)NULL值露氮,會(huì)返回“OBJECT”的原因。
3)BOOLEAN:即布爾類型钟沛,該類型有兩個(gè)值:TRUE和FALSE畔规。需要注意的是,BOOLEAN類型的字面值TRUE和FALSE是區(qū)分大小寫的恨统。也就是說叁扫,TRUE和FALSE(以及其它的混合大小形式)都不是BOOLEAN值,只是標(biāo)識(shí)符畜埋。
4)NUMBER:該類型的表示方法有兩種形式莫绣,第一種是整數(shù),第二種為浮點(diǎn)數(shù)悠鞍。整數(shù):可以通過十進(jìn)制对室,八進(jìn)制,十六進(jìn)制的字面值來表示咖祭。浮點(diǎn)數(shù):就是該數(shù)值中必須包含一個(gè)小數(shù)點(diǎn)掩宜,且小數(shù)點(diǎn)后必須有一位數(shù)字。
5)STRING:STRING類型用于表示由零或多個(gè)16位的UNICODE字符組成的字符序列心肪,即字符串锭亏。至于用單引號(hào),還是雙引號(hào)硬鞍,在JS中還是沒有差別的慧瘤。記得成對(duì)出現(xiàn)戴已。
6)OBJECT:OBJECT類型,稱為對(duì)象锅减,是一組數(shù)據(jù)和功能(函數(shù))的集合糖儡。可以用NEW操作符后跟要?jiǎng)?chuàng)建的對(duì)象類型的名稱來創(chuàng)建怔匣。也可以用字面量表示法創(chuàng)建握联。在其中添加不同名(包含空字符串在內(nèi)的任意字符串)的屬性。
7)SYMBOL:ES6新增第七種的數(shù)據(jù)類型每瞒,SYMBOLS也是一個(gè)集金闽,但它的元素既不是字符串也不是對(duì)象。SYMBOL生成一個(gè)全局唯一的值剿骨。
2.2 JS數(shù)據(jù)類型的常用方法
這里介紹7種:Boolean()代芜、isNaN()、Number()浓利、parseInt()挤庇、parseFloat()、toString()贷掖、String()嫡秕。
3.常見問題
怎么樣判斷各種數(shù)據(jù)類型?
4.解決方案
這里介紹2種方法:typeof苹威、instanceof.
1)typeof:用來判斷各種數(shù)據(jù)類型,有兩種寫法:typeof xxx ,typeof(xxx)
總結(jié):如果右邊的是基本類型昆咽,則typeof會(huì)嘗試得到最基本的類型,比如number,string等等屠升,如果是函數(shù)名潮改,那么則返回function,這里Object腹暖,Number,String翰萨,等等都可以看成函數(shù)名脏答,如果右邊是一個(gè)基本的對(duì)象,則返回object(返回的都是小寫哦)亩鬼。 注:我們發(fā)現(xiàn)typeof null殖告,結(jié)果返回了object,這是一個(gè)很早之前的BUG雳锋,一直沿用至今黄绩。 試用范圍:如果通過typeof來判斷類型,適用于判定基本類型玷过,或者判斷是否為函數(shù)(function)爽丹。
2)instanceof,返回的是一個(gè)布爾值
instanceof只能用來判斷對(duì)象和函數(shù)筑煮,不能用來判斷字符串和數(shù)字等。 instanceof還可以判斷變量是否為數(shù)組粤蝎。
5.編碼實(shí)戰(zhàn)
以上內(nèi)容真仲。
6.拓展思考
JavaScript 類型轉(zhuǎn)換有哪些?以及如何轉(zhuǎn)換初澎?
更多請(qǐng)參考:http://www.runoob.com/js/js-type-conversion.html
7.參考文獻(xiàn)
w3c:JavaScript數(shù)據(jù)類型
腳本之家:js判斷各種數(shù)據(jù)類型的方法
阮一峰:Javascript標(biāo)準(zhǔn)參考
8.更多討論
問:字符串轉(zhuǎn)數(shù)字用那種方式好?
字符串轉(zhuǎn)數(shù)字方法主要有三種
轉(zhuǎn)換函數(shù)秸应、強(qiáng)制類型轉(zhuǎn)換、利用js變量弱類型轉(zhuǎn)換碑宴。
1. 轉(zhuǎn)換函數(shù):
js提供了parseInt()和parseFloat()兩個(gè)轉(zhuǎn)換函數(shù)软啼。前者把值轉(zhuǎn)換成整數(shù),后者把值轉(zhuǎn)換成浮點(diǎn)數(shù)延柠。只有對(duì)String類型調(diào)用這些方法祸挪,這兩個(gè)函數(shù)才能正確運(yùn)行;對(duì)其他類型返回的都是NaN(Not a Number)捕仔。
2. 強(qiáng)制類型轉(zhuǎn)換
還可使用強(qiáng)制類型轉(zhuǎn)換(type casting)處理轉(zhuǎn)換值的類型匕积。使用強(qiáng)制類型轉(zhuǎn)換可以訪問特定的值,即使它是另一種類型的榜跌。
Number()的強(qiáng)制類型轉(zhuǎn)換與parseInt()和parseFloat()方法的處理方式相似闪唆,只是它轉(zhuǎn)換的是整個(gè)值,而不是部分值钓葫。
最后一種強(qiáng)制類型轉(zhuǎn)換方法String()是最簡(jiǎn)單的悄蕾,示例如下:
3. 利用js變量弱類型轉(zhuǎn)換
利用了js的弱類型的特點(diǎn),只進(jìn)行了算術(shù)運(yùn)算础浮,實(shí)現(xiàn)了字符串到數(shù)字的類型轉(zhuǎn)換帆调。