1. let、const
作用:let 声明变量,const 声明常量
与 var 的区别:不能重复声明,且存在块级作用域,即只在代码块内生效
2. 箭头函数
使用:
let show = function (a, b) { return a + b; } alert(show(5, 3)) //结果为8 let show = (a, b) => { return a + b; } alert(show(5, 3)) //结果为8
当函数只有一个参数时,可以省略圆括号;当函数体内只有一条return语句时,可以省略函数体
let score = [19, 78, 90, 32, 12, 88] let r = score.map(item => item >= 60 ? '及格' : '不及格') alert(r)
3. 参数扩展:多余的参数可以通过扩展参数接收
let show = function (a, b, ...args) { alert(a) alert(b) alert(args) } show(1, 2, 3, 4, 5, 6, 7, 8, 9); let arr1 = [1, 2, 3] let arr2 = [4, 5, 6] let arr = [...arr1, ...arr2] alert(arr)
4. 解构赋值:左右两边类型必须一致
let [a, b, c] = [1, 2, 3] console.log(a, b, c) //结果为:1,2,3 let { a, b, c } = { a: 123, b: 324, c: 54343 } console.log(a, b, c);
5. 数组
5.1 map (映射)
let arr = [12, 5, 8] let result = arr.map( (item) => { return item * 2; } ) alert(result) //结果为24,5,16
5.2 reduce(汇总)
let arr = [1, 2, 3, 4, 5, 6] let r = arr.reduce((tmp, item, index) => { return tmp + item; }) alert(r) //结果为21 let arr = [1, 2, 3, 4, 5, 6] let r = arr.reduce((tmp, item, index) => { if (index != arr.length - 1) { return tmp + item; } else { return (tmp + item) / arr.length } }) alert(r)
5.3 filter(过滤器)
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] let r = arr.filter(item => { return item % 3 == 0 }) alert(r) //结果为3,6,9
5.4 forEach(迭代)
let arr = [12, 5, 8, 9] arr.forEach(item => { alert(item) })
6. 字符串
1. startsWith、endsWith:匹配开头和结尾的字符串
let str = "http://xxxxx.jpg" if (str.startsWith('http')) { alert("ok") } else { alert("no") } if (str.endsWith('jpg')) { alert("ok") } else { alert("no") }
2. 字符串模板:支持换行且可以使用 "${ }" 符取值
let title = 'Welcome!' let content = 'hello es6!' let str = ` <div> <h1>${title}</h1> <p>${content}</p> </div> ` alert(str)