JS中有7种数据类型:
number, string, boolean, symbol(es6加的), undefined, null, object
!!注意没有array类型也没有function类型
1,number 数值类型
整数和小数:1 1.1 .1
科学记数法:1.23e2(123)
二进制:0b开头的表示二进制 如0b11(3)
八进制:0开头的表示八进制 如011(9)(后来 ES5 添加了 0o11 语法)
十六进制:0x开头的表示十六进制 如0x11(17)
2,string 字符串类型
如:'你好' "你好" 单引号、双引号都可以
(1)空字符串:''
(2)转义
用转义符:反斜杠'\'转义
var a = '\'' '符号
var n = '\n' 回车
var n = '\t' tab(制表符)
var n = '\\' \符号
(3)多行字符串:
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类型
es6新加的,可以看mdn(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol)
或阮一峰的es6课程(http://es6.ruanyifeng.com/#docs/symbol)详细了解
每个从Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。
```
var sym1=Symbol();
var sym2=Symbol('foo');
var sym3=Symbol('foo');
```
5,undefined 和 null
都表示没有值
(规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
(惯例)如果你想表示一个还没赋值的对象,就用 null。如果你想表示一个还没赋值的字符串/数字/布尔/symbol,就用 undefined(但是实际上你直接 var xxx 一下就行了,不用写 var xxx = undefined)
6,object 对象类型
object 就是上面几种基本类型(无序地)组合在一起
object 里面可以有 object
var person = {
name: 'Frank',
'child': {
name: 'Jack'
}, // 最后这个逗号可有可无
}
object 的 key 一律是字符串,不存在其他类型的 key
object[''] 是合法的
object['key'] 可以写作 object.key
注意 object.key 与 object[key] 不同
delete操作符
delete object['key'] 删除一个key(key和value都没了)
person['name']=undefined 只是把value给清空了,key还在
'key' in object 查看某个key是否在object中
```
var person = {name:'Vivien'}
delete person['name']
'name' in person
```
用for in遍历object
7,typeof 操作符
typeof操作符可以查看变量的数据类型
有两个例外
例外1:null的typeof返回的是object
例外1:function的typeof返回的是function
!!!注意function并不是一个数据类型