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