-
两个命令 let const
let 不允许在同一作用域声明同名变量
let 带来了块级作用域
let 声明的变量没有变量提升,不允许在声明语句执行之前使用,哪怕外层作用域范围已经存在同名变量
(该作用域范围内声明语句之前称之为叫暂时性死区)const 拥有 let 的一切功能
const 用来声明常量,且声明的变量必须初始化
const 声明的变量不允许修改栈地址或者基础类型的值 -
变量的解构赋值
数组结构
对象解构 -
字符串
新的遍历方法 (for of) 用作遍历数组、字符串等一系列可迭代的元素slice、substring、substr 用作字符串截取
substr:
一个参数:起始位置截到最后
两个参数:起始位置和长度substring
一个参数:起始位置截到最后
两个参数:一个是起始,一个是结束(并不是按照参数顺序,小的数值是起始位置,大的数值是结束位置,若存在负数,起始位置即为 0)slice
一个参数:起始位置截到最后
两个参数:规定了第一个参数是起始位置、第二个参数为结束位置(若后大前小(都为正数),截取为空,若存在负数,从字符串倒数开始)模版字符串 ``
-
函数扩展
函数参数默认值 ---- > 类型解构相关(本质上就是将 实参 解构到 形参 中)
箭头函数 (参数列表) => {方法体}
注意项:this 指向的问题(用到的地方、小程序开发、vue 开发) -
数组扩展
flat(参数):压扁数组flatMap(): 先执行 map 后执行 flat
push、pop、shift、unshift、splice、reverse、sort
map、filter、forEach、concat、slicesplice (操作的索引, 替换元素的个数,插入的元素…) 至少两个参数
数组的扩展运算符 …
-
对象扩展
对象扩展运算符 …
对象的属性简写 -
模块
es6 中 导出模块的语句
export (let / const / var / function) 名称 -
Promise
用来解决异步执行链
// 同步
method1() --- ajax
method2() --- ajax
method3() --- ajax
// 异步嵌套
$.ajax({
url,
method,
success: function() {
$.ajax({
url,
method,
success: function() {
$.ajax({
url,
method,
success: function() {
}
})
}
})
}
})
// 异步嵌套 升级版
// method1
$.ajax({
url,
method,
success: function() {
method2()
}
})
// method2
$.ajax({
url,
method,
success: function() {
method3()
}
})
// method3()
$.ajax({
url,
method,
success: function() {
// ...
}
})
// Promise 版
// method 1
$.ajax({
url,
method,
success: function() {
}
})
// method 2
$.ajax({
url,
method,
success: function() {
}
})
// method 3
$.ajax({
url,
method,
success: function() {
}
})
method1().then(metho2).then(method3)