js里有7種數(shù)據(jù)類(lèi)型,分別是string瞎访,boolean腻贰,number,null扒秸,undefined播演,object冀瓦,symbol
數(shù)據(jù)類(lèi)型簡(jiǎn)介
1.string,boolean和number三種是最基本的數(shù)據(jù)類(lèi)型写烤。
string
可以用單引號(hào)''
也可以用雙引號(hào)""
來(lái)表示字符串翼闽,注意區(qū)分空字符串和空格字符串,空字符串轉(zhuǎn)化boolean為false洲炊,空格字符串轉(zhuǎn)化boolean為true感局;
用\
來(lái)進(jìn)行轉(zhuǎn)義,"\\"
表示反斜杠暂衡,字符串長(zhǎng)度為1询微,常見(jiàn)的為回車(chē)"\n"
,tab"\t"
等;
表示多行字符串時(shí)狂巢,有三種方法撑毛,一種是在句尾添加\
,反斜杠后不能加字符否則換行無(wú)效隧膘,如下:
var a = "12345\
67890"
a \\ "1234567890"
a.length\\10
一種是字符串相加的方法代态,比較安全易懂,如下:
var a = "12345"+"67890"
a\\"1234567890"
a.length\\10
第三種是es6的擴(kuò)展方法疹吃,和markdown里的引用代碼方法一致蹦疑,輸入格式和輸出格式一致,包括換行符等不可見(jiàn)字符:
var a = `1234
567890
12`
a
"1234
567890
12"
number
JavaScript 內(nèi)部萨驶,所有數(shù)字都是以64位浮點(diǎn)數(shù)形式儲(chǔ)存歉摧,即使整數(shù)也是如此。具體格式為:從左往右腔呜,第1位為正負(fù)標(biāo)志位叁温,2-12位為植樹(shù)位,13-64位為小數(shù)位
十進(jìn)制核畴,二進(jìn)制(0b,0B開(kāi)頭)膝但,十六進(jìn)制(0x,0X開(kāi)頭)
js中有正負(fù)0,正負(fù)0當(dāng)分母時(shí)有區(qū)別谤草,可以得到正無(wú)窮大和負(fù)無(wú)窮大
2.undefined和null跟束,是兩個(gè)特殊值。
這兩個(gè)值都表示空丑孩,區(qū)別是undefined代表沒(méi)有被定義冀宴,只是聲明了,不一定是對(duì)象温学,也可能是基礎(chǔ)類(lèi)型略贮,轉(zhuǎn)為數(shù)值時(shí)為NaN;null表示已經(jīng)定義為對(duì)象,值為空對(duì)象逃延,轉(zhuǎn)為數(shù)值時(shí)為0览妖。
3.object是一組數(shù)據(jù)和功能的集合,稱(chēng)為合成類(lèi)型真友;object里又有三種子類(lèi)型:object對(duì)象黄痪,array數(shù)據(jù),function函數(shù)盔然。
object對(duì)象時(shí)取值,用中括號(hào)選取key來(lái)取得value是嗜;當(dāng)key值的string符合標(biāo)識(shí)符的標(biāo)準(zhǔn)愈案,可以使用點(diǎn)語(yǔ)法:
var a = {"x1a3":1," ":2}
a.x1a3//1
a["x1a3"]//1
a[" "]//2
執(zhí)行刪除操作后,a中沒(méi)有x1a3
的鍵值對(duì):
delete a["x1a3"]\\true
a\\{" ": 2}
"x1a3" in a\\false
a[" "] = undefined\\undefined
" " in a\\true
便利對(duì)象的key值鹅搪,但key的順序隨機(jī)站绪,無(wú)法確定
var person = {name:"aa",age:10}
for(var a in person){console.log(a,person[a])}
\\name aa
\\age 10
如何確定數(shù)據(jù)類(lèi)型
1.typeof方法
typeof運(yùn)算符可以返回一個(gè)值的類(lèi)型,可以typeof 1
也可以typeof(1)
:
對(duì)基礎(chǔ)數(shù)據(jù)類(lèi)型string丽柿,boolean恢准,number,直接返回相應(yīng)對(duì)數(shù)據(jù)類(lèi)型
typeof(1)//"number"
typeof("1")//"string"
typeof(true)//"boolean"
對(duì)于null和undefined來(lái)說(shuō)甫题,執(zhí)行typeof操作符馁筐,null返回object,undefined返回undefined坠非。
利用這一點(diǎn)敏沉,typeof可以用來(lái)檢查一個(gè)沒(méi)有聲明的變量,而不報(bào)錯(cuò)
typeof(null)//"object"
typeof(undefined)//"undefined"
對(duì)于object類(lèi)型炎码,狹義的對(duì)象返回object盟迟,數(shù)組也返回object,但function返回function
var a = {a:"aa",b:"bb"}
typeof(a)//"object"
var b = [1,2,3]
typeof(b)//"object"
var fn = function(){window.console.log(122)}
typeof(fn)//"function"