一、 标题let和const 声明变量和常量
let
- 作用域只局限于当前代码块
- 使用let申明的变量作用域不会被提升
- 在相同的作用域下不能申明相同的变量
- for循环体现let的父子作用域
const
- 只在当前代码块中有效
- 作用域不会被提升
- 不能被重复申明
- 申明的常量必须赋值
二、 解构和赋值
- 基本用法
let [name.age,sex]=['张三','20','女'];
- 对象的解构赋值
let {name.age,sex}={name:'张三',age:'20',sex:'女'};
- 数组的解构赋值
let [arr1,[arr2,arr3,[arr4,arr5]]]=[1,[2,3,[4,5]]];
console.log(arr1,arr2,arr3,arr4,arr5); //1 2 3 4 5
let [a,,c]=[1,2,3]
console.log(a,c); //1 3
- 基本类型的解构赋值
let [a,b,c,d,e]='我是中国人';
console.log(a,b,c,d,e); //我 是 中 国 人
三、数据集合set
- 创建一个集合
let set=new Set(['张三','李四','李四']);
console.log(set); //set(2){"张三","李四"}
可以去除重复的
- 一个属性
console.log(set.size); //2
-
四个方法(支持链式)
add()添加
delete()删除
has()判断是否有某个元素,true/false
clear()清除集合 -
keys和value
键值对,结构器
四、数据集合map
特点:类似于对象,本质上是键值对的集合:“键”不局限与字符串,各种类型的值
(包括对象)都可以当作键;对象“字符串-值”,Map“值-值”,是一种更加完美的Hash结构实现
- 创建一个Map
const map=new Map();
console.log(map.size);
-
set和get
map.set()设置集合中的值
map.get()获取集合中的值 -
delete
map.delete()删除 -
has
map.has()判断是否有某个元素,true/false -
clear
map.clear()清除map -
keys(),values(),entries()
map.keys();构造器key值
map.values();构造器values值
map.entries();构造器entries值 -
遍历
map.forEach(function(value,index){
console.log(index+':'+value);
})
- 注意事项:
map.set({},‘呵呵呵’);
map.set({},‘哈哈哈’);
这个就是map集合里的两个不同对象
五、 Symbol
数据类型Symbol表示独一无二的值
对象的属性名可以有两种类型:字符串和Symbol类型
解决命名冲突
let str=Symbol();
console.log(typeof.str);//数据类型是Symbol
六、class的基本运用
- 构造函数
function Person(name,age){
this.name=name;
this.age=age;
}
- 通过clas面向对象
class Person{
constructor(name,age){
this.name=name;
this.age=age;
}
print(){
console.log('我叫'+this.name+',今年'+this.age+'岁');
}
}
let person=new Person('张三',19);
console.log(person);
person.print();
未完待续