JS 里的数据类型
2018-09-09 本文已影响0人
小白兔养家
js的七种数据类型:
1、数字 number
2、字符串 string
3、布尔 boolean
4、Symbol(符号)
5、null
6、undefined
7、对象 object
基本类型
数字 number
// 十进制
1 1.1 .1 1.23e2
// 二进制
0b11
// 八进制
011
// 十六进制
0x11
字符串 string
// 空字符串 (长度为 0)
'' ""
// 空格字符串 (长度为 1)
' ' " "
// 转义符(长度为1)
var a = '\'' // 单引号
var n = '\n' // 回车
var t = '\t' // 制表符
var b = '\\' // 转义符
// 多行字符串(s2为推荐写法,s1容易在\后多空格产生错误)
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
// 都表示什么都没有
// 区别
1、(语法)如果一个变量没有被赋值,它是undefined
2、(惯例)如果有一个对象object,但是现在还没有赋值,推荐使用null
如果有一个非对象,还没有给它赋值,用undefined
复杂类型
var name = 'frank'
var age = 18
var gender = 'male'
//复杂类型是由基本类型组成的
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的规则必须遵守标识符的规则
'9a': 'frank' // 可以
}
// 获取key
person['name'] // 不可以用person[name]
在符合标识符的情况下可以用 person.name
// delete
delete person['name']
person.name // undefined (无value)
'name' in person // false (无key)
person.name = undefined // 只把value设为undefined,key还是存在的
// 遍历对象
for(key in person){
console.log(key)
console.log(person.key) // 不行
console.log(person[key]) // 正确语法
console.log(key,person[key]) // 浏览器不按规范打印
}
typeof的两个BUG
type null // 'object'
type fn // 'function'