简单整理es6遇到的语法
兼容性:ie10+,火狐,谷歌等
低版本浏览器编译转换:在线转换和提前编译(browser.js,引入=》type改成type/babel)
1.变量声明
var --- 可以重复声明,无法限制修改,没有块级作用域。在es6新出let和const.
let --- 不可重复说明,变量-可以修改,块级作用域
const --- 不可重复声明,常量-不可以修改,块级作用域
2.箭头函数
()=> {}
如果只有一个参数,()可以省略
如果只有一个return {} 可以省略
eg:调用时show(1,2,3,4,5),…args表示后面传的345
3.解构赋值
4.数组新增方法
map --- 映射,一个对一个
1. let arr= [12,5,8];
let result = arr.map(item) => return item*2
alert(result)// 24,10,16
2. let arr [61,24,30,50];
let result = app.map(item) return item > 60 ?‘及格’ : '不及格'
alert(result) // 及格,不及格,不及格,不及格
reduce --- 汇总,一堆出来一个
fiflter --- 过滤器
1. let arr = [12,5,6,9,8,7]
let result = arr.filter(item => {
return item % 3 == 0
})
console.log(result) // 12,6,9
2. let arr = [
{title: '男士衬衫',prise:75},
{title: '女士衬衫',prise:2505},
{title: '儿童衬衫',prise:425}
]
let result = arr.filter(item=> item.prise >=1000)
console.log(result)
// [{title: '女士衬衫',prise:2505},{title: '儿童衬衫',prise:425}]
forEach --- 循环迭代
1. let arr = [1,2,3]
arr.forEach((item,index) => {
alert(index + ':' + item)
})
5.字符串
es6 多了两个字符串方法:
startsWidth:返回布尔值,是否以…开始
endsWidth:返回布尔值,以…结尾
模板字符串:字符串连接 ${内容}
let abc = 12;
let str = `abc${abc}bc`
alert(str) // abc12bc
6 面向对象
class关键字,构造器和类分开,class里面直接写方法
7 promise
消除异步操作,用同步的代码写异步
8 generator 生成器
函数中间可以暂停,函数可以走走停停,根据需求去设置
function *函数名() {
代码...
yield; // 在这里终止
代码...
}
function* showWords() {
yield 'one';
yield 'two';
return 'three';
}
var show = showWords();
show.next() // {done: false, value: "one"}
show.next() // {done: false, value: "two"}
show.next() // {done: true, value: "three"}
show.next() // {done: true, value: undefined}
function* showWords() {
yield 'one';
yield* showNumbers();
return 'three';
}
function* showNumbers() {
yield 10 + 1;
yield 12;
}
var show = showWords();
show.next() // {done: false, value: "one"}
show.next() // {done: false, value: 11}
show.next() // {done: false, value: 12}
show.next() // {done: true, value: "three"}