今天分享一下es6的新增属性
1.声明方式:
let和const
使用var 声明的变量有变量提升,可以重复声明
使用let 声明的变量没有变量提升,不能被重复声明,又给块级作用域遇到{}就会产生作用域
let a = 0;
const和let 类似
没有变量提升,不能被重复声明,一开始声明的时候就赋值
被const声明变量类似于常量(一旦被声明就不能再修改了) 数组和对象可以修改(对象修改属性,数组修改下标)
var a // 可以
let a // 可以
const a // 不可以
2.解构赋值:
解构赋值-对象
不需要注意顺序,只要属性名一样就行
var {age,sex,name} = {name:‘真实感’,sex:18,age:‘10’}
数组: var [a,b,c] = [‘张安’,18,‘男’] // 按照先后顺序赋值的,顺序不能乱
不完全解构
var [a='李四',, b ='张三' ] = ['xx','oo']
var [a='李四',, b ='张三' ] = ['xx','oo','黑河']
...c 可以接收到剩余的参数 var [a,...b] = [1,2,3,4];
var arr = ['张三','可可','嗷嗷']
var a = arr // 不加[]相当于浅拷贝
var [...a] = arr // 加[...]相当于深拷贝,不会影响到原数组
字符串
var [a,b,c] = ‘张三’ // 如果值是字符串那么就会把字符串分解,然后分别赋值给变量
扩展运算符
rest运算符 可以接收到剩余的参数,放到一个数组中
function a(a,…b){
//rest运算符 可以接收到剩余的参数,放到一个数组中
console.log(a)
console.log(b)
console.log(arguments) // 参数对象 里面包含所有的参数
}
a(1,2,3,4,5,6,7)
字符串新特性
普通字符: var a = 15 var str = '哈哈' + a + '发生'
模板字符串: var a = '18' function aa (){return '我是NBA'}
//使用反引号 `` 定义,可以换行声明,可以解析变量,可以解析函数,但是变量和函数要使用${}包裹起来
var str = `哈哈 ${a} ${aa()} 啦啦啦`
var a = str.repeat(10) // 重复字符串 参数 次数
字符串补长 padStart(字符串开头补长) padEnd(字符串结尾补长)
参数1 总长度 [参数2] 默认是使用空格补长,可以指定字符串
match()
var a = 'afsafsfswffs1991fsf'
var b = a.match('fs) // 字符串包含验证,返回查询到的字符串,第一次匹配成功就停了,返回的是一个数组
var b = a.match(/fs/g) // 全局匹配,会一直检索到字符串的末尾,把符合条件的全部都匹配出来
includes
includes返回布尔值,匹配成功返回true 没有返回false
var a = 'afsafsfswffs1991fsf'
var b = a.includes('张三')
startsWith() 判断是否为指定字符开头的
endswith() 判断是否为指定字符结尾的
数组新特性
Array.of() // 把一组数据快速生成一个数组
Array.from(类数组) // 可以把伪数组转换成数组
map()map方法可以把数组里面的每个值,挨个转入到回调函数中,配合 return把新数据返回出去存放到一个数组中
var b = arr.map(function(a){
return a+'安娜'
})
fill()没有参数 全替换成undefined
var b = arr.fill('xx',1,2) //参数1 用什么字符去替换
// 参数2 从哪开始换
// 参数3 结束位置不包括结束位置
find() 可以定义一个查询的表达式,把第一个满足条件的数据值返回出去
var b = arr.find(function(value,index,yuan){
// 参数1 值 参数2 索引 // 参数3 原数组
return value > 3
})
findIndex() 可以定义一个查询的表达式,把第一个满足条件的索引返回出去
var b = arr.findIndex(function(value,index,yuan){
// 参数1 值 参数2 索引 // 参数3 原数组
return value > 3
})
entries() 配合 for of 会比较方便,返回的是键值对
for(var i of arr.entries()){console.log(i)}
var b = arr.entries() // 返回的是一个,含有迭代器的数组
console.log(b.next()) // 需要调用 next() 来向后移动指针
// 返回值是对象 {value:"",done:""} value存放的是对应下标里面的键值对
// done里面存放的是布尔,当数组里面还有数据没有被遍历完之前里面存放的是false,没数据的时候存放的是true