变量的解构赋值
es6 允许找按照一定模式从数组和对象中提取值,对变量进行赋值,这就被称为解构赋值
1、数组的结构
const F4 = ['小沈阳','刘能','赵本山','宋小宝'];
let [xiao, liu, zhao, song] = F4;
console.log(xiao);
console.log(liu);
console.log(zhao);
console.log(song);
2、对象的结构
const zhao = {
name: '赵本山',
age: '不详',
xiaopin: function(){
console.log('我可以演小品');
}
};
let {name, age, xiaopin} = zhao;
console.log(name);
console.log(age);
console.log(xiaopin);
xiaopin();
模板字符串
es6 引入新的声明字符串的方式 [``] ‘’ “”
1、声明
let str = ‘我是一个字符串哦!’
let str = <ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
简化对象写法
es6 允许在大括号里面,直接写入变量和函数,值为对象的属性和方法,这样的书写可以更加的简洁
箭头函数
es6 允许实用[箭头] (=>)定义函数
//申明一个函数
// let fn = function (a,b) {
// }
let fn = (a,b) =>{
return a + b;
}
let result = fn(1,5);
console.log(result);
//1.this 是静态的 this 始终指向函数声明所在的作用域下的this的值
function getName(){
console.log(this.name);
}
let getName2 = () => {
console.log(this.name);
}
//设置 window 对象的name属性
window.name = '邓洋';
const school = {
name: 'ATTT'
}
getName();
getName2();
// call方法可以改变函数内部this的值的
getName.call(school);//aTTT
getName2.call(school);//邓洋 因为是静态的,所以this始终指向的是全局对象
//2.不能作为构造实例化对象
// let Person = (name, age) => {
// this.name = name;
// this.age = age;
// }
// let me = new Person('xiao',30);
// console.log(me);//会报错 Person不是一个构造器
//3.不能使用 arguments 变量(保存实参)
// let fn = () => {
// console.log(arguments);
// }
// fn(1,3,5);
//4. 箭头函数的简写
// 1)省略小括号,当形参有且只有一个的时候
let add = n => {
return n + n;
}
console.log(add(9));
// 2)省略花括号你,当代码体只有一条语句的时候,此时 return 必须省略
//而且语句的执行结果就是函数的返回值
let pow = n => n*n;
console.log(pow(9))