ES6是JavaScript中非常重要的一个版本,对于JavaScript的功能有极大的丰富。让JavaScript从一个弱类型的语言上升到了半强类型语言。
ES6中新增了两个对变量的定义 let const ,
let和const不会进行预解析。{ }里定义的变量在括号外不能调用(指的是if,switch,for,which,for…in,forEach,function)。同一个作用域内定义的名称不能重复(不同{}内的名称是可以重复的)。在循环中定义的变量与forEach中的变量相似,每次执行都会产生一个新的,相互不影响的变量。其中const也可以称为常量定义之后不能从新赋值,不能改变。
箭头函数:
所谓箭头函数就是一种新增的函数语法,要注意的是箭头函数本身是没有this指向的他的this指向,是父级程序的this指向如果父级程序没有this指向那么就是指向window。箭头函数的出现就是为了配合面向对象编程和构造函数。
<script>
// 所谓的箭头函数
// 是函数的另一种语法形式
const fun = function(){} /* 普通函数 */
const fun = ()=>{} /* 箭头函数 */
// 将匿名函数的部分,从 function(){} 写成 ()=>{} 的形式
// 如果函数只有一个参数,可以不写()
const fun = function(e){} /* 普通函数 */
const fun = e => {} /* 箭头函数 */
// 如果执行体中只有一行代码,可以不写{}
const fun = e=>{console.log(e)} /* 普通箭头函数 */
const fun = e=> console.log(e) /* 不写{}箭头函数 */
</script>
展开合并运算符: …数组
在函数中的实参中使用是将数组中的值自动展开,在函数形参中使用是将多个形参值合并为一个数组。
ES6新增语法形式class类 :
ES6中,新增语法形式 class 类是一种新的定义构造函数的语法 作用和原理与ES5语法完全相同 只是语法格式和书写方式。
语法结构:
class 类名{
constructor(参数。。。){
this.属性=属性值
}
方法名(){
实例化对象中需要使用的方法和函数
( 如果调用对象的数据,必须是 对象.属性
对象名称不确定,使用this来替换)
}
}
<script>
// ES5和ES6语法的对比
// 1,ES5语法
function Fun1(name,age){
this.name = name;
this.age = age;
}
Fun1.prototype.f1 = function(){
console.log(this.name , this.age);
}
// 2,ES6语法 class
class Fun2{
constructor(name,age){
this.name = name;
this.age = age;
}
f2(){
console.log(this.name , this.age);
}
}
const obj1 = new Fun1('张三',18);
const obj2 = new Fun2('李四',20);
console.log(obj1);
console.log(obj2);
</script>