1、概述
JavaScript有六种数据结构
- 数值(NUMBER):整数和小数(比如1和3.14)
- 字符串(STRING):文本(比如HELLO WORLD)。
- 布尔值(BOOLEAN):表示真伪的两个特殊值,即TRUE(真)和FALSE(假)<只有两个值>
- UNDEFINED:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
- NULL:表示空值,即此处的值为空。
- 对象(OBJECT):各种值组成的集合。
数值、字符串、布尔值这三种类型合称为原始类型(primitive type),undefined和null看作两个特殊值,对象则是复杂类型。对象作为最复杂的类型,可以分成三个子类型:狭义的对象(object),数组(array),函数(function)。
2、typeof运算符
可以使用typeof运算符确定一个值的类型
- 数值、字符串、布尔值分别返回number、string、boolean。
- 函数返回function。
- undefined返回undefined
- 对象返回object
- null返回object
- 已声明未赋值的变量返回undefined
3、细节
1. number
- 整数和小数:1 // 1.1 // .1
- 科学记数法:1.23e2
- 二进制:0b11
- 八进制:011(后来 ES5 添加了 0o11 语法)
- 十六进制:0x11
2. string
- 空字符串:''
- 多行字符串:主要是用“+”(加号)连接
3. boolean
- 只有两个值,true和false
- 符号&&和||
4. symbol
5. undefined和null
- 如果一个变量没有被赋值,那么这个变量的值就是 undefiend
- 如果想表示一个还没赋值的对象,就用 null。如果想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined
6. object
- object可以由基本类型无序组合在一起
- object可以由object组成
- object 的 key 一律是字符串,不存在其他类型的 key
- object[''] 是合法的
- object['key'] 可以写作 object.key
- 注意 object.key 与 object[key] 不同
- delete object['key']
- 'key' in object