ES6 : 2015 年推出的下一代 Javascript 语言标准; ES5:上一代 JavaScript 语言标准。
1.Babel: 语法编译器
某些浏览器不能识别 ES6 语法,Babel 会将它编译成浏览器可以识别的 ES5 语法。Babel 官网:Babel 中文网 · Babel - 下一代 JavaScript 语法的编译器 (babeljs.cn)
ES6 语法编译2. var let const 变量声明说明:
为什么有了 var , 还要创造 let const 变量声明?因为 var 变量声明存在“变量提升”问题,var 变量声明,提升到全局,污染全局环境。
var 变量声明存在“变量提升”问题let const 不存在“变量提升”,并且是“块作用域”,不能被重复声明。
const 声明常量,一旦声明需要里面赋值。
var let const 区别为什么需要“块作用域”?
内层声明变量提升,覆盖外层变量 全局污染 let 为块作用域,且不存在变量提升var 用来计数循环遍历,容易把变量暴露成全局问题:
for(var i=0; i < 10; i++) {}闭包函数:一个函数包裹着另一个函数,内层函数希望使用外层函数声明的变量,我们称这种为“闭包函数”。
外层函数 “n变量” 依然被内层函数引用,不会销毁。
闭包函数使用了外层声明变量 n用 let 声明为“块作用域”, i 变成成了“块作用域”变量,不会销毁。
用 let 变量解决计数问题建议:通常我们用 const 声明变量,只有你知道变量需要被修改的时候才采用 let 。
3. 模板字符串
模板字符串采用反引号,插入变量 ${变量名}
模板字符串4.数组和对象的解构赋值
数组解构对象解构:
对象解构函数也可以解构:
函数解构剩余解构:
通过剩余解构运算符解构 res 为剩余解构函数的参数解构及默认值:
函数的参数解构及默认值解构赋值的用途:
* 交换变量值
x,y 交换变量值* 从函数返回多个变量值
从函数返回多个变量值* 函数参数的定义
函数参数的定义* 从接口提取 JSON 数据
从接口提取 JSON 数据* 输出模块中的指定方法
输出模块中的指定方法5.函数的扩展之箭头函数
带参数默认值的函数rest:剩余解构
剩余解构什么是箭头函数?
箭头函数 箭头函数简写箭头函数作用:简化代码
箭头函数作用箭头函数注意点1:
箭头函数注意点1箭头函数注意点2:
this: //本着谁调用的这个方法,这个 this 指向了谁的原则。
注意 this 真正的主人是谁解决方法1:
解决方法1解决方法2:
函数本身是一个对象,有 bind() 方法可以使用。把函数内部的 this 指向外部的 this。
采用 bind 处理方法解决方法3:
采用箭头函数:
采用箭头函数,this 它不会找当前对象 (document),它会找定义当前对象(document)的上下文。通过作用域链往上找。
强烈建议:对象中的函数采用普通函数。
对象中采用普通函数箭头函数中没有 arguments 对象:
箭头函数中没有 arguments 对象箭头函数不能使用 new 关键字来实例化对象:
箭头函数不能使用 new 关键字来实例化对象6.对象的扩展
对象扩展对象扩展运算符:
对象扩展运算符
网友评论