# 数据类型
## 3.1 字符串
1、字符串不可变
2、模板字符串
```javascript
var name="sheldon";
//table上面的按键
var msg=`cooper,${name}`;//模板字符串`${name}`
```
3、子串截取
```javascript
var name="sheldon";
console.log(name.substring(1,3))//截取子串
```
## 3.2 数组
Array可以包含任意的数据类型
1、 长度可变
2、indexOf,通过元素获得下标索引下标索引
3、slice
4、push、pop
push从尾部进一个元素,pop弹出尾部的一个元素
5、unshift、shift 头部
```
unshift:从头部进入
shift:弹出头部一个元素
```
6、排序sort()
7、元素翻转reverse
8、concat
9、join使用特殊符号拼接数组
## 3.3 对象
若干个键值对
**js中所有的键都是字符串**
```javascript
//对象
var person={
name:"shed",
age:18,
score:18,
}
```
可以动态的增删对象的属性
## 3.4 流程控制
if判断(和java一样)
while循环(和java一样)
for循环(和java一样)
## 3.5 Map和Set
1、Map
```javascript
var map=new Map([['tom',100],['jack',90]]);//建立Map
map.get('tom');//取值
map.set('qin',101)//建立值
console.log(map.get('tom'));
```
2、Set
无序,没有重复元素
```javascript
var set=new Set([12,333,333,21,12,1,1,2,2,3])
console.log(set)
ser.add(2)
```
```
Set(6) {12, 333, 21, 1, 2, …}
```
3、iterator
使用iterator来遍历迭代Map、Set
Iterator的遍历过程是这样的:
(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
(2)第一次调用指针对象的`next`方法,可以将指针指向数据结构的第一个成员。
(3)第二次调用指针对象的`next`方法,指针就指向数据结构的第二个成员。
(4)不断调用指针对象的`next`方法,直到它指向数据结构的结束位置。
每一次调用`next`方法,都会返回数据结构的当前成员的信息。具体来说,就是返回一个包含`value`和`done`两个属性的对象。其中,`value`属性是当前成员的值,`done`属性是一个布尔值,表示遍历是否结束。