ES6语法
(1)、变量声明
使用的变量必须在声明后才可以使用;
es6的语法声明没有变量提升,且声明的变量的作用域会局限于{}中。
const constant,常数、常量,在定义之后就不可更改,不变的量。
let 比起var没有变量提升。
(2)、对象方法
对象解构(object deconstruct)
let userinfo = {name:"xx",age:18}
let {name} = userinfo;
tips:输出的name的结果为userinfo.name;
let {name,age} = userinfo;
let {name:name12 , age} = userinfo;
tips:name的值赋给name12,进行了重命名操作;
数组解构
let arr = ["xx", "yy", "aa", "cc"]
let [a, b, c, d] = arr
结果为:
a = "xx";
b = "yy";
c = "aa";
d = "cc";
tips:解构后的对应变量和数组元素一一对应;
eg:
let [a, , b, c] = arr; //这时候的第二个元素会被忽略;
let [ , , , a] = arr; //前三个元素忽略,只有第四个元素被取出了;
数组过滤
var arr_2 = arr.find(function(item, index){
//item指arr中的元素,index为该元素的索引值
//在其内部可以写if条件判断,
//当return值为true的时候,该元素就会作为返回值返回,可以用一个变量来接收;
})
(3)、字符串方法
str.includes() 是否包含该字符串
str.startsWith() 是否以该字符串开头
str.endsWith() 是否以该字符串结尾
tips:全部都返回一个布尔值;
eg:
let str = "xxyyzzsstt";
str.includes("yy")
str.startsWith("xx")
str.endsWith("tt")
(4)、模板字符串
反引号,用于拼接字符串
let obj = {name:xx, age:yy}
str = `<div>
<p>${obj.name}</p>
<p>${obj.age}</p>
</div>`
tips:反引号内部的字符串支持换行,不需要加号拼接;
(5)数组新方法
arr.find(function(item,index){
//item是当前的元素,index为其索引
//当出现了符合条件的元素时,写return true,这时即返回了一个当前符合条件的元素,可以用一个变量来接收这个元素
})
let tmp = arr.findIndex(function(item,index){
return index > 28
//此时返回的即为index > 28的元素
})
(6)对象扩展,obj extend
let name = "xx";
let age = 18;
let obj = {
name,
age,
gender : woman
}
tips:在这里,obj里的name和外界定义的name名称一致,在obj中本来应该写成name : name,因为同名,所以在这里可以省略成只写一个name;
(7)函数简写
hello:function(){
}
简写:
写法一: hello(){
}
写法二: hello()=>{
}
tips:在箭头函数中,其内部不存在this,如果出现了this,只会往上一级寻找this变量;
普通的function中才会有this;
eg:
hello:x=> x * x
tips:该函数等同于hello:function(x){
return x * x
}
(8)展开运算符
以下两式等同,...相当于apply。数组将会被拆分每一个元素都会分别调用方法。
function test(a,b,c){}
var args = [0, 1 , 2]
test.apply(null, args)
======>
function test(a,b,c){}
var args = [0, 1, 2]
test(...args)