今天分享一下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