數(shù)據(jù)總共分為兩類(lèi):基本類(lèi)型(簡(jiǎn)單類(lèi)型)、復(fù)雜類(lèi)型(由簡(jiǎn)單類(lèi)型組成)
1.基本類(lèi)型
1.1.number
用開(kāi)發(fā)者工具的console可以直接打出來(lái)很方便。比如控制臺(tái)直接打ob11就會(huì)出來(lái)3妻熊。
1.2.string
`這個(gè)也行,所以總共有3種方法但是1,3有缺點(diǎn)所以還是用2吧其垄,畢竟方方一直用2
1.3.boolean
1.4.symbol
搜方應(yīng)杭symbol
1.5.null
1.6.undefined
和null一樣表示什么都沒(méi)有。為什么要有兩個(gè)呢卤橄,這是js之父的bug
區(qū)別:
一般程序員慣例null表示空對(duì)象绿满。var obj = null 。undefined表示空非對(duì)象 var a = undefined但是一般默認(rèn)為undefined窟扑。所以var a 就行了喇颁。所以空的賦值就兩種。 var obj = null var a
2.復(fù)雜類(lèi)型
2.1.object
就是我們之前說(shuō)得哈希表嚎货,就是key+value橘霎。ES3最后一個(gè)哈希不能加逗號(hào),ES5可以。所以IE7以下的不能加逗號(hào)IE8以上可以殖属。
對(duì)象就是簡(jiǎn)單類(lèi)型的組合姐叁,所以js就非常簡(jiǎn)單,給你6中簡(jiǎn)單類(lèi)型。然后一個(gè)復(fù)雜類(lèi)型你可以由簡(jiǎn)單類(lèi)型隨便組合七蜘。
數(shù)組和函數(shù)都在對(duì)象里面
左邊隨便key谭溉,value可以是1~7的類(lèi)型,包括對(duì)象
對(duì)象兩個(gè)優(yōu)點(diǎn):
1.簡(jiǎn)單方便
2.可以看到相互關(guān)系橡卤,比如我知道這個(gè)name扮念,age,性別都是這個(gè)person的碧库。之前隨便定義了3個(gè)變量也不知道什么東西柜与,什么關(guān)系。
person['name']這個(gè)引號(hào)不能去掉嵌灰。在對(duì)象集里面key的引號(hào)可以去弄匕。因?yàn)橐?guī)定這里必須是字符串了,不會(huì)有歧義沽瞭。person[name]的話這name是變量不是字符串迁匠。比如前面如果var name = 'fuck' 那 person[name]就相當(dāng)于person['fuck'],而person里面沒(méi)有'fuck'這個(gè)key就會(huì)報(bào)錯(cuò)了驹溃。
2.1.1.讀object
如果key符合標(biāo)識(shí)符(可以不加‘’)城丧。這時(shí)候讀key可以用person.key的方式。所以自己統(tǒng)一都符合標(biāo)識(shí)符豌鹤。讀的時(shí)候也都用“.”別用[ ]亡哄。
那我當(dāng)然還是習(xí)慣就不要加''咯,如果我'9a'是符合的布疙。那讀又得person['9a']
多麻煩蚊惯。還是一律不加'',一律不用['key'].
另外“.”左右是從左到右的灵临。左邊是右邊的爸爸截型。
2.1.2.寫(xiě)object
9a不符合標(biāo)識(shí)符,標(biāo)識(shí)符就是變量名的規(guī)則
1.首字符不能數(shù)字
2.中間不能空格
3.不能有奇怪字符
盡管限制很多大部分人還是不喜歡加引號(hào)儒溉,因?yàn)閼谢陆埂N移鋵?shí)可以先寫(xiě)好后面批量加引號(hào)
中文可以,中文可以當(dāng)變量名
2.1.3.刪object
刪除有兩種睁搭,直接delete會(huì)把key和value都刪掉。第二種直接給value賦值為undefined笼平,這種的話顯然key還在
2.1.4.遍歷object
2.2.type of
歷史
錯(cuò)題
"??".length 為 2 是因?yàn)?js的bug园骆,不能識(shí)別16字節(jié)以上的字符。所以??被拆成兩個(gè)字符寓调。
中文不能直接翻譯成base64锌唾,必須先用encodeURICompoent轉(zhuǎn)化為字符串再轉(zhuǎn)