2019/11/18
ES6
变量:
- Var 重复定义不报错;没有块级作用域;不能限制修改
- Let 变量;不能重复定义;有块级作用域;可以修改
- Const 常量;不能重复定义,有块级作用域;不能修改
解构赋值
json={a:12,b:5};
let {a,b}=json;
arr=[12,5,8]
let [a,b,c]=arr;
- 两边结构必须一样
- 右边必须是个东西
- 赋值和解构同时完成
let {a,b}=[12,5];
let {a,b};
{a,b}={a:12,b:5};
函数与参数:
-
箭头函数——简写注意项:
1.只有一个参数,()可以省
2.只有一个语句,还是return,{}可以省 -
function 名字(){} //函数
- ()=>{} //箭头函数
-
参数扩展:
- …arg 展开参数
- …是用来收集剩余的参数,必须的放在最后,不管后面是不是空的,都不影响使用,前面如果没东西,则是未定义,如果数组里面有东西,则显示,如果没有,则显示空数组
-
特殊函数:
- Generator(中间可以暂停)
- 普通函数(一直执行到头)
数组:
- Map 映射 一个对一个
列: // let score = [19,85,99,25,90];
// let result = score.map(item=>item>=60?'及格':'不及格');
- Reduce 汇总 一堆出来一个
列:// let arr =[12,69,180,5500];
// let result = arr.reduce(function(tmp,item,index){
// return tmp+item;
// })
- Filter 过滤
列: let arr = [12,5,6,79,21,11,75];
let result = arr.filter(item=>item%3==0);
- forEach 遍历,选代
字符串:
- 字符串模板: “xxx” ‘xxx’
x${变量}xx
- 两个新方法:
- StartsWish 用于检查字符串是否是以指定前缀开头
- endsWish 用于判断字符串是否以指定后缀结尾
- 字符串可以拼接(直接把东西塞到字符串里面)
- 可以转行 ${ 东西 }
// let a=12;
// let str = `a${a}bc`;
// alert(str);
面向对象:
- Class
- Super
- Extends
- 概括:首先在定义一个类时必须要有class属性,在class后必须跟类名加{ }
在constructor构造函数中定义,在创建一个类后调用这个类里面的方法,
在用法上用extends继承,在继承中要在constructor中用super继承,然
后根据需要增加或删除 - 包括json对象:
- Json.stringify
- Json.parse
- 简写: 方法,名字都一样
- 标准写法:
- 只能用双引号
所有的名字都必须用引号包起来
列:
{a:12,b:5} ×
{"a":12,"b":5} √
Promise:(消除异步操作)
- 同步:
- 只有操作完事了,才往下执行 一次只能做一件事
列: let banners=$.ajax('/get_banners');
let hot=$.ajax('/get_hot');
let list=$.ajax('/get_list');
let hot=$.ajax('/get_hot');
-
异步:
-
这个操作进行中其他操作也可以进行 一次可以做多个事
列:
let p = new Promise(function (resolve, reject) {
$.ajsx({
url: '/', //路径
dataType: 'json', //类型
success(arr) {
resolve(arr);
},
error(err) {
reject(err);
}
})
});
p.then(function () {
alert('成功');
}, function () {
alert('失败了');
})
- 优势:
- 同:简单方便
- 异:用户体验好,高效
- 两个参数:
- Resolve 成功
- Reject 失败
- 三个方法:
- (function里面的参数)
- Then( )
方法返回一个promise;它最多需要两个参数,成功和失败的回调函数 - All( )
可以将多个实例包装成一个实例;成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。 - Reac( )
竞速;里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
- 创建promise对象:
let p=new Promise(function (resolve, reject){
异步代码...
});
- 使用promise对象:
P.then(( )=>{ },( )=>{ });