js的七種數(shù)據(jù)類型:
1、數(shù)字 number
2歌亲、字符串 string
3、布爾 boolean
4澜驮、Symbol(符號(hào))
5陷揪、null
6、undefined
7泉唁、對(duì)象 object
基本類型
數(shù)字 number
// 十進(jìn)制
1 1.1 .1 1.23e2
// 二進(jìn)制
0b11
// 八進(jìn)制
011
// 十六進(jìn)制
0x11
字符串 string
// 空字符串 (長(zhǎng)度為 0)
'' ""
// 空格字符串 (長(zhǎng)度為 1)
' ' " "
// 轉(zhuǎn)義符(長(zhǎng)度為1)
var a = '\'' // 單引號(hào)
var n = '\n' // 回車
var t = '\t' // 制表符
var b = '\\' // 轉(zhuǎn)義符
// 多行字符串(s2為推薦寫法鹅龄,s1容易在\后多空格產(chǎn)生錯(cuò)誤)
var s1 = '12345 \
67890'
var s2 = '12345' +
'67890'
var s3 = '12345 \
67890'
var s4 = `12345
67890`
布爾 boolean
// a&&b 與
只有在a和b同時(shí)為真,a&&b為真
// a||b 或
a和b有一個(gè)為真亭畜,a||b為真扮休。都為假,為假
null和undefined
null類型的值為null
undefined類型的值為undefined
// 都表示什么都沒有
// 區(qū)別
1拴鸵、(語(yǔ)法)如果一個(gè)變量沒有被賦值玷坠,它是undefined
2、(慣例)如果有一個(gè)對(duì)象object劲藐,但是現(xiàn)在還沒有賦值八堡,推薦使用null
如果有一個(gè)非對(duì)象,還沒有給它賦值聘芜,用undefined
復(fù)雜類型
var name = 'frank'
var age = 18
var gender = 'male'
//復(fù)雜類型是由基本類型組成的
var person =
{
'name': 'frank',
'age': 18,
'gender': 'male'
}
對(duì)象 object
var person =
{
'name': 'frank',
'age': 18,
'gender': 'male',
'married': true,
'children': null,
self: person, //***
'': 'frank'兄渺, // person['']
9a: 'frank', // 錯(cuò)誤寫法汰现,不加引號(hào)的key的規(guī)則必須遵守標(biāo)識(shí)符的規(guī)則
'9a': 'frank' // 可以
}
// 獲取key
person['name'] // 不可以用person[name]
在符合標(biāo)識(shí)符的情況下可以用 person.name
// delete
delete person['name']
person.name // undefined (無(wú)value)
'name' in person // false (無(wú)key)
person.name = undefined // 只把value設(shè)為undefined挂谍,key還是存在的
// 遍歷對(duì)象
for(key in person){
console.log(key)
console.log(person.key) // 不行
console.log(person[key]) // 正確語(yǔ)法
console.log(key,person[key]) // 瀏覽器不按規(guī)范打印
}
typeof的兩個(gè)BUG
type null // 'object'
type fn // 'function'