总体分类
- Javascript主要有七种数据类型
- Javascript的数据类型主要可以分为简单类型(基本类型)和复杂类型两种
- 其中简单类型有Number、String、Boolean、Symbol、Null、Undefined、Object
Number
- 根据 ECMAScript 标准,JavaScript 中只有一种Number类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(2^63 -1) 到 2^63 -)
- 进制:二进制以
0b
开头,八进制以0
开头,十六进制以0x
开头
String
- JavaScript的字符串类型用于表示文本数据。它是一组16位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1,依此类推。字符串的长度是它的元素的数量
- 多行字符串的几种写法
//不推荐,因为如果反斜杠后面有空格,就会报错,并且难以拍错
var s = '12345\
6789'
//一般可以使用这种写法
var s = '12345' +
'6789'
//ES6新语法,但是中间会包含回车
var s = `12345
6789`
Boolean
- 布尔表示一个逻辑实体,可以有两个值:
true
和false
Symbol
- Symbol是ES6中引入的一个新的数据类型,其作用主要是创造一个独一无二的值
- 语法:
var a = Symbol()
;也可以这么写```var a = Symbol('test'),字符串的内容与Symbol产生的值没有关系,字符串可以作为注释来使用,使代码更清晰
Null和Undefined
- 同时存在Null和Undefined属于Javascript的设计失误,其他语言都只用一个符号来表示
- 两者的细微区别:
- 如果变量暂时不赋值,推荐使用undefined
- 如果想声明一个暂时不想赋值的对象,推荐使用null;如果想声明一个暂时不想赋值的非对象,推荐使用undefined
Object
- Object的核心在于key-value对,Hash表
- array、function都属于对象
- delete操作,
delete obj['key']
,删除相应的key-value对
- in操作,
'key' in obj
,检查对象中是否有相应的key
- typeof操作,返回变量的类型;注意,null的返回结果是object,function的返回结果是function(没有这种数据类型)
- for...in操作,遍历对象中的key
- 注意,使用obj.str这种语法访问对象的值的时候,js引擎会把str解析为字符串,所以str不能是变量;如果要用变量作为key,必须使用obj[key]这种语法