ES6新增语法
Let变量
ES6中新增了用于声明变量的关键字let。
let具有以下特点:
1.let声明的变量只在所处于的块级有效
2.不存在变量提升
3.暂时性死区
if (true) {
let a = 10
}
console.log(a) // a is not defined
conset常量
声明常量,常量就是值(内存地址)不能变化的量。
const具有以下特点:
1.具有块级作用域
2.声明常量时必须赋值
3.常量赋值后,值不能修改
if (true) {
const a = 10
}
console.log(a) // a is not defined
解构赋值
ES6中允许从数组中提取值,按照对应位置,对变量赋值,对象也可以实现解构
数组解构赋值
1.只解构一个
let arr = ['a','b','c','d','e','f']
let [a] = arr
alert(a)
let [,b,] = arr
alert(b)
2.合并数据
let arr = ['a','b','c','d','e','f']
let arr2 = [0,1,2]
let longArr = [...arr,...arr2]
console.log(longArr)
3.剩余参数rest,解构两个把剩余的放一起
let arr = ['a','b','c','d','e','f']
let arr2 = [0,1,2]
let [a,b,...newArr] = arr
let longArr = [...arr,...arr2]
alert(newArr[0]);
4.默认值
let [n1,n2,n3,n4=1] = arr2
alert(n4)
对象解构赋值
1.基本解构:重命名属性
let zs = {
name:"张三",
gender:"男",
age:18
}
let {name:zsName,gender,age} = zs
alert(zsName)
2.对象的默认值
let zs = {
name:"张三",
gender:"男",
age:18
}
let{name:zsName,gender,age,salary:money = 10000} = zs
alert(money)
3.实例
let zs = {
name:"张三",
gender:"男",
age:18
}
function selfIntroduction({name:zsName,age,gender,salary:money = 10000}){//形参
// alert("我叫"+zsName+"今天"+age+"性别"+gender+"月入"+money);
//模板字符串:`` ${}
alert(`我叫${zsName}今天${age}性别${gender}月入${money}`)
}
//调用函数
selfIntroduction(zs);//传入实参
箭头函数
1.计算两个数组的和
let numSum = (a,b) => a + b
console.log(numSum(1,2))
2.箭头函数一:一个参数(可以省略小括号),一个语句(省略{},return)
let result = n => n * 2
console.log(result(4))
3.箭头函数二:大于一个参数必须使用小括号,一个语句(省略{},return)
let numSum = (a,b) => a + b
console.log(numSum(1,2))
4.箭头函数三:没有参数必须写小括号,多语句必须使用{}
let say = () => {
console.log("你好")
console.log("再见")
}
5.如果函数有返回值
let result = n => n * 2//单语句箭头函数默认返回结果
console.log(result(4))
let rs = function(n){//有返回值的函数
return n * 2
}
console.log(rs(3))
新增方法
forEach 循环遍历
为每一项+10
let arr = [0,1,2,3]
arr.forEach(function(item,index,a){
console.log(item+10);
})
常用方式
let arr = [0,1,2,3]
arr.forEach(item => console.log(item+10))
map 循环遍历 有返回值
let arr = [0,1,2,3]
let result = arr.map(item => item+10)
console.log(result)
filter 过滤数组
let arr = [0,1,2,3]
let newArr = arr.filter(item => item>1)
console.log(newArr)
some判断数组是否至少有一个值通过条件,返回布尔类型
let arr = [0,1,2,3]
let result = arr.some(item => item>1)
console.log(result)
trim 去掉字符串前后两端的空格
let a = " 今 天星 期几? "
let na = a.trim()
console.log(na)
startsWith
判断开始是否为“今”,返回布尔
let a = " 今 天星 期几? "
let na = a.trim()
console.log(na.startsWith("今"))
判断第二个是否为“天”,返回布尔
let a = " 今 天星 期几? "
let na = a.trim()
console.log(na.startsWith("天",2))
endsWith
判断结束是否为“?”,返回布尔
let a = " 今 天星 期几? "
let na = a.trim()
console.log(na.endsWith("?"))
find返回数组中满足条件的第一个元素的值。否则返回undefined
let result = arr.find(item => item>1)
console.log(result)
findIndex返回数组中满足条件的第一个元素的索引。若没有找到对应元素则返回-1
let result = arr.findIndex(item => item>1)
console.log(result)
includes方法用来判断一个数组是否包含一个指定的值,如果包含则返回 true否则返回false
let result = arr.includes(2)
console.log(result)
对象的方法
keys返回一个包含该对象所有键的数组
let obj = {
a:"张三",
b:"李四",
c:"王五",
}
let propA = Object.keys(obj)
console.log(propA)
values返回一个包含该对象所有值的数组
let obj = {
a:"张三",
b:"李四",
c:"王五",
}
let propB = Object.values(obj)
console.log(propB)
entries返回一个包含该对象所有键值对的数组
let obj = {
a:"张三",
b:"李四",
c:"王五",
}
let propC = Object.entries(obj)
console.log(propC)
有空在写下面的