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();