JS共有七種數(shù)據(jù)類型:
- number/數(shù)值
- string/字符串
- boolean/布爾
- symbol/符號(hào)
- null
- undefined
- object/對(duì)象
number/數(shù)值
十進(jìn)制
1 / 1.1 / 1.23e2
二進(jìn)制
ob開頭隧魄,不分大小寫
ob1 > 1
0b10 > 2
0B10 > 2
八進(jìn)制
0開頭
011 > 8
十六進(jìn)制
OX開頭
0x11 > 17
String/字符串
‘你好’克婶、"你好"
"" 凭疮、 ‘’ : 空字符length為0;
" " 吏夯、 ' ' : 空格字符串length為1篙程;
轉(zhuǎn)義
-
var a = ' ' ' //出錯(cuò)
var a = " ' " //單引號(hào)
var a = ' \' ' //單引號(hào)
\ 為轉(zhuǎn)義符该溯,讓瀏覽器知道后邊不是結(jié)束的符號(hào)登夫;
var a = ' \\ ' //表示一個(gè)\
var n = '\n' //回車
var t = '\t' //Tab制表符
多行命令行
JS學(xué)習(xí)的是命令行的規(guī)則拷邢。當(dāng)想換行時(shí):
- var s1='12345\
67890'
//坑人語(yǔ)法,問(wèn)題如下: - var s2 = '12345\空格空格空格
67890'
//空格看不到平斩,報(bào)錯(cuò)亚享; - 盡量采用以下的易讀語(yǔ)法:
var s3 = '12345' +
'67890' - ES6新特性:
var s4 = [`反引號(hào)] 12345[回車]
67890[反引號(hào)]
boolean/布爾
- 歷史:布爾/數(shù)學(xué)家/邏輯學(xué)/下雨/上課/沒(méi)帶傘/肺病/去世;
- true真/false假
- && 與/ || 或
symbol
搜索“方應(yīng)杭 symbol”
null & undefined
- null類型 : 一個(gè)值為null;
undefined類型 : 一個(gè)值為undefined; - 都表示什么都沒(méi)有绘面,JS之父產(chǎn)生的bug;
- 區(qū)別:
- 變量沒(méi)有值時(shí)欺税,用undefined;
-
慣例是:
有一個(gè)對(duì)象object,現(xiàn)在不想賦值,用null;
var object = null
有一個(gè)非對(duì)象揭璃,不想賦值魄衅,建議初始化為undefined;
var n
=var n = undefined
即一般情況下:null表示空對(duì)象;undefined表示空“非對(duì)象”塘辅。
object/對(duì)象/哈希表
復(fù)雜類型由以上簡(jiǎn)單類型組成;
var person = {
'name':'frank',
'age':18,
'gender':'male',
'children':{name:'xxx',age:1}
'self':person
}讀冉粤谩:person['name'] ,
引號(hào)里符合標(biāo)識(shí)符規(guī)范時(shí)扣墩,可以:
person.name方括號(hào)里單引號(hào)不能刪
var name = 'jack'
person[name] //報(bào)錯(cuò)
person[name]
=person['jack']
,不存在,undefined;
-
'' : 'frank'
可以加入對(duì)象扛吞;
person[''] = 'frank'
同理'a[空格]b' = 'frank'
也可以加入對(duì)象呻惕; -
9a : 'frank
不可以加入對(duì)象,
當(dāng)key不加引號(hào)時(shí)滥比,命名就必須按照標(biāo)識(shí)符規(guī)范原則亚脆;
delete、in盲泛、for in 和 typeof
delete :將鍵濒持、值同時(shí)清空键耕;
delete person['name']
person.name //undefined (無(wú)value)
'name' in person //false (無(wú)key)
遍歷對(duì)象:
for (var key in person){
console.log(key)
}
打出key: name,age...
for (var key in person){
console.log(person[key])
}
打出value:frank,18...
錯(cuò)誤:
console.log(person.key)
等于person['key']
,并不存在key這個(gè)鍵。
typeof:
特殊情況:
typeof null //object
typeof function //function