| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 
 | ES6新增功能:1. 变量声明的方式 let
 let 变量名  (不能重复声明;有块级作用域)
 2. const声明常量 不可重复声明;也有块级作用域;不能被修改值;
 3. 对象的简写形式
 属性简写:属性名与属性值的变量名同名;
 方法简写:
 let obj{
 sing:function(){
 console.log('sing')
 }
 }
 可写成
 let obj{
 sing () {
 console.log('sing')
 }
 }
 4.  对象解构赋值
 let {对象的属性名:要声明的变量名} = 对象
 let {name:name} = obj;
 5. import {要导入的内容1,要导入的内容2} from "模块"
 6. 数组解构赋值
 let arr = [1,2,3,4];
 let [num1,num2,num3,num4] = arr;
 
 let arr = [1,2,3,4,5];
 let [num1,...num2] = arr;
 7. 箭头函数
 let func2 = (参数列表) =>{
 console.log(2222);
 }
 func2();
 ###简写形式###
 如果参数列表中只有一个参数,那么参数()可以省略;
 let f1 = (a) => {
 console.log(a *2);
 }
 let f2 = a => {
 console.log(a *2);
 }
 f2(10);
 如果箭头函数的函数体只有一句代码,函数体的{}可以省略;
 let f1 = (a) => {
 console.log(a *2);
 }
 let f3 = a => console.log(a / 10);
 如果箭头函数的函数体只有一句代码,并且这句代码是返回语句,那么return与{}都可省略;
 let sum = (a,b) =>{
 return  a +b ;
 }
 
 let sum = (a,b) => a+ b;
 8. this的用法
 this的四种调用模式:
 函数调用: this--->window  函数名()
 方法调用: this--->调用 方法的对象  对象.方法名()
 构造函数调用:this--->创建出来的实例 new 函数名()
 上下文调用模式:this--->call和apply的第一个参数 函数名.call()
 
 箭头函数中没有this,若果使用this,this会向上一级作用域中查找.
 使用var that = this的场景全都可以使用箭头函数解决
 
 
 
 
 
 
 
 
 
 let obj = {
 name :"纯生",
 say (){
 setTimeout(() =>{
 console.log("我叫"+this.name);
 },1000)
 }
 }
 obj.say();
 9. 箭头函数中没有arguments的说明:
 arguments在函数被调用时,会将所有的实参存贮到arguments对象中
 使用场景:传递参数个数不确定时,使用arguments获取所有实参
 function sum(){
 var result = 0;
 for (let i = 0; i< arguments.length;i++){
 result += arguments[i];
 }
 return result;
 }
 res = sum(1,2,3,5);
 console.log(res);
 10. 剩余参数 rest params 只能有一个,并且只能是参数列表的最后一个
 function func(b,...a){
 console.log(a);
 }
 func(1,2,3,4);
 箭头函数获取不定个数的参数,就可使用剩余参数.
 11. 函数参数默认值的使用
 12. 使用变量值作为属性名:
 var key = "name";
 var obj = {
 [key]:"assasin",
 }
 console.log(obj);
 13. 对象扩展运算符
 var obj = {
 name :"assasin",
 age:25
 }
 
 var ass = {
 ...obj
 }
 console.log(ass);
 14. 运算符在数组传(参)递时的使用
 function sum(a,b,c){
 return  a + b + c;
 }
 var arr = [2,3,5];
 console.log(sum(...arr));
 15. Class使用
 
 
 
 
 
 
 
 class Person {
 
 
 static sayhi(){
 console.log("sayhi方法");
 }
 
 constructor(name,age){
 this.name = name;
 this.age = age;
 }
 
 say(){
 console.log("say方法");
 }
 }
 
 class Student extends Person{
 
 }
 var stu = new Student();
 console.log(stu);
 console.log(stu.say());
 Person.sayhi();
 var p = new Person('assasin',28);
 console.log(p);
 
 16.super调用的原因:
 function Person(){
 this.name = "assasin";
 this.age = 25;
 }
 function Student(){
 Person.call(this);
 }
 var stu = new Student();
 console.log(stu);
 
 
 class Person{
 constructor(){
 this.name = "assasin";
 this.age = 25;
 }
 }
 
 class Student extends Person{
 constructor(){
 super();
 }
 }
 
 |