Python 27 ES6常用语法

1、变量定义

(1)let

在ES5中,通过var定义的变量,会在一加载js文件时就声明变量,到那一行时给变量赋值,这样在var之前打印这个变量就是undefined,不会报错,称之为变量提升。

在ES6中提供了新的变量定义方式let,通过let定义的变量不会出现这种情况,会直接报错。

另外,var只有全局作用域和函数作用域,let还有块级作用域。var可以重复定义,let不能重复定义。

总结区别:变量提升、块级作用域、重复定义

(2)const

const有let的所有特点:没有变量提升、有块级作用域、不能重复定义,同时是一个常量,不能修改,且定义的时候必须赋值

2、模板字符串

用反引号进行字符串的拼接,用${ }来存储变量。

let username = "yin";

let odiv = document.getElementById("odiv");
odiv.innerHTML = `
        <h1>hello ${username}</h1>
        <h2>hello you</h2>
`

3、数据的解构赋值

// 将数组中的值分别赋值给abc
let ary = [1, 2, 3];
let [a, b, c] = ary;

// 将对象中的值分别赋值
let obj = {
    username: "yin",
    age: 21
};
let {username, age} = obj;  // 实际上相当于:{username: username, age: age}

4、函数的扩展

(1)箭头函数

箭头函数的this指的是定义时的作用域

// 一个参数
let func = x => x;
func(10);

// 多个参数
let func = (x, y) => {return x+y};
func(1, 2);

(2)单体函数

https://www.cnblogs.com/yanze/p/7645347.html

单体函数就是省略了function:的函数

单体函数的this指的是调用它的对象。

5、类

类必须定义construct构造方法,通过new来实例化

class Person {
    constructor(name, age, account=1000){
        this.name = name;
        this.age = age;
        this.account = account;
    }
    showInfo(){
        console.log(this.name);
    }  
}
let wang = new Person("wang", 22);
wang.showInfo();

继承必须写上super( )

class Son {
    constructor(name, age){
        super();
        this.name = name;
        this.age = age;
    }
}
let he = new Son("he", 21);
Son.showInfo();
原文地址:https://www.cnblogs.com/yinwenjie/p/11280534.html