es2015(es6)学习总结
1.三种声明方式
- var:它是variable的简写,可以理解成变量的意思。
- let:它在英文中是“让”的意思,也可以理解为一种声明的意思。
- const:它在英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量。
var a=2; { var a=3; } console.log(a); //3 var a=2; { let a=3; } console.log(a); //2
2. 变量的解构赋值
简单的理解就是将等号右边数组或者对象 的元素拆开赋值给相应的变量
数组解构
let [a,b,c]=[1,2,3]; let [a,b="JS"]=['你好',undefined]; console.log(a+b); //控制台显示“你好JS” let [a,b="JS"]=['你好',null]; console.log(a+b); // 你好null
数组作为参数传给函数
let arr = ['hello','world','你好']; function fun(a,b,c){ console.log(a,b,c); } fun(...arr); //解构赋值
对象解构
数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值
let {foo,bar} = {foo:'你好',bar:'JS'}; console.log(foo+bar); let foo; ({foo} ={foo:'JS'}); console.log(foo); //加圆括号,打印不报错 //字符串解构 const [a,b,c,d,e]="Hello";
3.字符串查找
之前用str.indexOf('hello') 来返回hello 在str 字符串中的索引位置,没有则返回-1,es6用 includes 判断返回布尔值
var str = 'hello ,this is my blog'; console.log(str.includes('my')); //true str.startsWith('hello'); //判断开头是否存在 str.endsWith('hello'); //判断结尾是否存在
4.json 数组格式转换
let json = { '0': 'hello', '1': 'world', '2': '你好啊' } JSON.stringify(json) // 数组转json字符串 {"0":"hello","1": "world","2": "你好啊"} let jsonStr ='{"0":"hello","1": "world","2": "你好啊"}' JSON.parse(jsonStr ) // json字符串转json 对象
es6 中有种特殊的json 格式,可以轻松的将json 对象转换成数组
let json = { '0': 'hello', '1': 'world', '2': '你好啊', length:3 } let arr=Array.from(json); //用Array.from(json) 来转换 console.log(arr) //['hello','world','你好啊']
let arr =Array.of(3,4,5,6); // 可以转换数字,字符串也是可以转换的
console.log(arr);
5.Set数据结构
Set数据结构,注意这里不是数据类型,而是数据结构。它是ES6中新的东西,并且很有用处。Set的数据结构是以数组的形式构建的。
let setArr = new Set(['jspang','技术胖','web','jspang']); console.log(setArr); //Set {"jspang", "技术胖", "web"} //Set值的追加add setArr.add('前端职场'); // 删除delete setArr.delete('前端职场'); //查找has console.log(setArr.has('jspang'));//true //删除clear setArr.clear(); set的循环 //for…of…循环 for (let item of setArr){ console.log(item); } //size 属性 console.log(setArr.size); //forEach循环 setArr.forEach((value)=>console.log(value));