变量声明:
- <strong>let</strong>
Let a = 10; //a的作用域就是大括号内
let声明的变量:
1.没有声明提升必须先声明再使用;
2.不能重复定义
- <b>const</b>
只读变量
对象的解构赋值
var {name,age} = {name:"旺财",age:3};
对象的解构赋值应用:
- 交换两个数的值;
var f1 = 88;
var f2 = 99;
[f1,f2] = [f2,f1];
-
函数返回多个值
function cal(a,b){
var ret1 = a+b;
var ret2 = a-b;
var ret3 = a*b;
var ret4 = a/b;
return [ret1,ret2,ret3,ret4];
}
var [r1,r2,r3,r4] = cal(10,5);
console.log(r1,r2,r3,r4); 获取json数据
var jsonData = {"name":"tom","age":20,"sex":"男"};
var {name,age,sex} = jsonData;
-
谈谈你对this的认识
1.在函数体外,this指的就是window对象;
2.在函数体内,谁调用函数this就指向谁;
3.在构造函数中,this指的是新创建对象;
4.在html标签中,this指的是当前的这个标签元素; -
--谈谈对ES6的认识--
let const
结构赋值 数组解构 对象结构 应用
函数 带有的默认值的形参 箭头函数 字面量对象中函数属性
数组
...展开运算符
字符串中 includes()
创建对象的方法 对象继承
set()跟map()集合
ES6创建对象
class Dog{
//构造函数
//给对象添加普通属性
constructor(name,age,color){
this.name = name;
this.age = age;
this.color = color;
}
//注意:如果不写构造函数 有一个默认的构造函数
// constructor(){};
bark(){//给类增加方法
console.log("汪汪汪");
}
}-
ES6的继承
class Animal{ constructor(age,sex){ this.age = age; this.sex = sex; } eat(){ console.log("吃吃吃"); } } class Dog extends Animal{ constructor(name,sex,age){ // super指的是父类 super(age,sex); this.name = name; } bark(){ console.log("旺旺"); } //重写 :在子类中重新定义父类中的方法 eat(){ console.log("吃狗粮"); } }
-
set()集合
var s = new Set(); s.add(1); s.add(window) s.add(true,false)//后面为值 s.add(1) s.add(2) s.add(1) s.add(1) s.delete(window);删除集合元素 has(value);判断指定的值是否在
set集合中
clear(); 清空集合
var s2 = new Set([9,2,2,2,3,4,5,6,7,8,9,0]);//可以数组去重
console.log(s2);
var arr1 = [1,2,2,2,3,4,5,6,7,8,9,0];
arr1 = Array.from( new Set(arr1) );
console.log(arr1);
//遍历集合
for(var item of s2){
console.log(item);
}