七种数据类型:number、string、boolean、symbol、undefined、null、object(注意没有 array 类型也没有 function 类型,array 和 function 实际上是包含在 object 中的)
因此 “JS一切皆对象” 的说法错误
1. number
- 整数和小数:
1、1.1、 .1(即0.1)
- 科学记数法:
1.23e2
- 二进制:
0b11
- 八进制:
011
(后来 ES5 添加了 0o11 语法) - 十六进制:
0x11
2. string
- 空字符串:
' '
- 多行字符串:
var s = '12345' +
'67890' // 无回车符号 (推荐写法)
或
var s = `12345
67890` // 含回车符号
-
"\"
表示转义字符
特殊字符的表示
3. boolean
- boolean 的取值
只有两个值:true
和false
a && b
在a
和b
都为true
时,取值为true
;否则为false
a || b
在a
和b
都为false
时,取值为false
;否则为true
4. symbol
5. undefined 和 null
undefined 和 null都表示没有值,二者的用法如下:
- (规范)如果一个变量没有被赋值,那么这个变量的值就是
undefiend
- (习俗)如果你想表示一个还没赋值的对象(空对象),就用
null
;如果你想表示一个还没赋值的字符串/数字/布尔/symbol(空的非对象),就用undefined
(声明的时候直接var xxx
就行了,不用写var xxx = undefined
) -
Number(null) // 转为数值时为0
Number(undefined) // 转为数值时为NaN
6. object
-
object
就是上面几种基本类型(无序地)组合在一起 -
object
里面可以有object
var person = {
name: 'aaa', //'name': 'aaa'(key 只能是字符串)
'child': {
name: 'bbb' //'name': 'bbb'(key 只能是字符串)
}, // 最后这个逗号可有可无
}
-
object
的key
一律是字符串,不存在其他类型的key
-
object['']
是合法的 -
object['key']
可以写作object.key
(只有' '
里的key
符合标识符的命名规则时才能采用这种写法) - 注意
object.key
与object[key]
不同(object['key'] !== object[key]
) - 删除 key :
delete object['key']
'key' in object
7. typeof 操作符
xxx 的类型 | string | number | boolean | symbol | undefined | null | object | function |
---|---|---|---|---|---|---|---|---|
typeof xxx | 'string' | 'number' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'object' | 'function' |
注意:①null 的类型为 'object'
②function 的类型为 'function'( function 并不是一个类型)
是 JS 的两个 bug
网友评论