1.背景介紹
在編程語言中,能夠表示并操作的值的類型稱做數(shù)據(jù)類型哮塞。 JavaScript 語言的每一個值刨秆,都屬于某一種數(shù)據(jù)類型。數(shù)據(jù)類型有六種忆畅。ES6增加一種數(shù)據(jù)類型Symbol衡未。
2.知識剖析
數(shù)據(jù)類型有這些:Number、String、Boolean缓醋、Undefined如失、Null、Object
Number類型(數(shù)字類型)
該類型的表示方法有兩種形式改衩,第一種是整數(shù)岖常,第二種為浮點(diǎn)數(shù)。整數(shù):可以通過十進(jìn)制葫督,八進(jìn)制竭鞍,十六進(jìn)制的字面值來表示。浮點(diǎn)數(shù):就是該數(shù)值中必須包含一個小數(shù)點(diǎn)橄镜,且小數(shù)點(diǎn)后必須有一位數(shù)字偎快。
String類型(字符串類型)
用于表示由零個或多個16位統(tǒng)一碼字符組成的字符序列,即字符串洽胶。字符串就是我們所說的文本晒夹,它用單引號或雙引號表示,并且兩種表示方法是相同的姊氓。然而丐怯,需要注意的是,以雙引號開頭的字符串必須以雙引號結(jié)尾翔横,以單引號開頭的字符串必須以單引號結(jié)尾读跷。字符串是不可改變的,也就是說禾唁,字符串一旦被創(chuàng)建效览,它們的值就不能改變。要改變某個變量保存的字符串荡短,首先要銷毀原來的字符串丐枉,然后再用另一個包含新值的字符串填充該變量,
Boolean類型(布爾類型)
Boolean類型只有兩個字面值:true和false掘托。這兩個值與數(shù)字值不是一回事瘦锹,因此true不一定等于1,而false也不一定等于0烫映。需要注意的是沼本,Boolean類型的字面值true和false是區(qū)分大小寫的。也就是說锭沟,True和False(以及其他的混合大小寫形式)都不是Boolean值抽兆,只是標(biāo)識符。
Undefined類型(未定義類型):表示未闡明的族淮,未定義的辫红。
Null類型
null是空的意思凭涂。它只有一個值,就是null贴妻。null值表示一個空對象切油,因此使用typeof操作符檢測null值會返回“object”。
Object類型(對象類型)
object是對象的意思名惩,它是一組數(shù)據(jù)和功能(函數(shù))的集合澎胡。JavaScript 中的所有事物都是對象:字符串、數(shù)值...... 此外娩鹉,JavaScript 允許自定義對象攻谁。
常用方法有這些:
Boolean():用于將非邏輯值轉(zhuǎn)換為邏輯值(true 或者 false)。
toString():把一個邏輯值轉(zhuǎn)換為字符串弯予,并返回結(jié)果戚宦。
String():把對象的值轉(zhuǎn)換為字符串。
isNaN():用于檢查其參數(shù)是否是非數(shù)字值锈嫩。
Number():把對象的值轉(zhuǎn)換為數(shù)字受楼。
parseInt(): 解析一個字符串,并返回一個整數(shù)呼寸。
3.常見問題
如何判斷值的數(shù)據(jù)類型艳汽?
4.解決方案
使用typeof操作符? 它有兩種寫法 typeof? xxx ,typeof(xxx)
不帶括號有空格,帶括號沒有空格对雪。
5.編碼實(shí)戰(zhàn)
6.擴(kuò)展思考
undefined和null有什么區(qū)別?
undefined表示變量聲明但未初始化時的值骚灸, null表示準(zhǔn)備用來保存對象,還沒有真正保存對象的值慌植。
7.參考文獻(xiàn)
js六大數(shù)據(jù)類型
w3school在線教程
菜鳥教程
8.更多討論
問題一
如何把字符串轉(zhuǎn)換成數(shù)字?
答:
1. 轉(zhuǎn)換函數(shù):
js提供了parseInt()和parseFloat()兩個轉(zhuǎn)換函數(shù)义郑。前者把值轉(zhuǎn)換成整數(shù)蝶柿,后者把值轉(zhuǎn)換成浮點(diǎn)數(shù)。只有對String類型調(diào)用這些方法非驮,這兩個函數(shù)才能正確運(yùn)行交汤;對其他類型返回的都是NaN(Not a Number)。
2. 強(qiáng)制類型轉(zhuǎn)換
還可使用強(qiáng)制類型轉(zhuǎn)換(type casting)處理轉(zhuǎn)換值的類型劫笙。使用強(qiáng)制類型轉(zhuǎn)換可以訪問特定的值芙扎,即使它是另一種類型的。
ECMAScript中可用的3種強(qiáng)制類型轉(zhuǎn)換如下:
Boolean(value)——把給定的值轉(zhuǎn)換成Boolean型填大;
Number(value)——把給定的值轉(zhuǎn)換成數(shù)字(可以是整數(shù)或浮點(diǎn)數(shù))戒洼;
String(value)——把給定的值轉(zhuǎn)換成字符串。
用這三個函數(shù)之一轉(zhuǎn)換值允华,將創(chuàng)建一個新值圈浇,存放由原始值直接轉(zhuǎn)換成的值寥掐。這會造成意想不到的后果。
當(dāng)要轉(zhuǎn)換的值是至少有一個字符的字符串磷蜀、非0數(shù)字或?qū)ο螅ㄏ乱还?jié)將討論這一點(diǎn))時召耘,Boolean()函數(shù)將返回true。如果該值是空字符串褐隆、數(shù)字0污它、undefined或null,它將返回false庶弃。
3. 利用js變量弱類型轉(zhuǎn)換舉個小例子衫贬,一看,就會明白了虫埂。
?代碼如下:
var str= '012.345 ';
var x = str-0;
x = x*1;上例利用了js的弱類型的特點(diǎn)祥山,只進(jìn)行了算術(shù)運(yùn)算,實(shí)現(xiàn)了字符串到數(shù)字的類型轉(zhuǎn)換掉伏,不過這個方法還是不推薦的缝呕。
問題二
undefined有哪些典型用法?
答:
(1)變量被聲明了斧散,但沒有賦值時供常,就等于undefined。
(2) 調(diào)用函數(shù)時鸡捐,應(yīng)該提供的參數(shù)沒有提供栈暇,該參數(shù)等于undefined。
(3)對象沒有賦值的屬性箍镜,該屬性的值為undefined源祈。
(4)函數(shù)沒有返回值時,默認(rèn)返回undefined色迂。
問題三
null有哪些典型用法香缺?
答:
null表示"沒有對象",即該處不應(yīng)該有值歇僧。典型用法是:
(1) 作為函數(shù)的參數(shù)图张,表示該函數(shù)的參數(shù)不是對象。
(2) 作為對象原型鏈的終點(diǎn)诈悍。