1 2 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(); } }
|