es6 7 8 9 10特性归纳(网上一大堆我是借鉴别人的和自己的一些理解)
ES6
- Let 与 Const’
- 类
- 模块化
- 箭头函数
- 函数参数默认值
- 模板字符串
- 解构赋值
- 延展操作符
- 对象属性简写
- promise
- 迭代器
- 生成器
Let 和 Const
let和const实现了块级作用域的概念,在用var生命变量时变量会提升且赋值undefined,但是let和const不会提升变量所以不能在定义前使用,所以就形成了暂时性死区。
{
var a = 10;
}
console.log(a);
-------------------------------------------
{
let a = 10;
}
console.log(a);//报错报not defined
类
ES6 引入了class(类),让JavaScript的面向对象编程变得更加简单和易于理解
class Father{
};
class Son extends Father{
constructor(...args){
super(...args);
};//这里如果我们不写 js会默认给我们添加并执行
};//相当于是个语法糖是寄生组合的语法糖
模块化(export import)
- 模块可以把多个功能隔离成独立的文件,减少代码的耦合度
- 模块可以开放部分功能供外部使用
- 模块通过导入导出的形式,使代码看着更规整
let name = "lbj";
function nba(){
console.log(0)};
export {
name,nba}
//支持变量导出也支持常量导出
//引入
import {
name,nba} from xxxx.js
//导入时支持默认函数和其它变量 import defaultMethod, { otherMethod } from 'xxx.js';
箭头函数
箭头函数的箭头=>之前是一个空括号、单个的参数名、或用括号括起的多个参数名,而箭头之后可以是一个表达式(作为函数的返回值),或者是用花括号括起的函数体(需要自行通过return来返回值,否则返回的是undefined)
// 箭头函数的例子
() => 1//空括号情况
v => v+1//单个参数情况
(a,b)=>a+b //多个参数情况
() => {
alert("foo");
}