- 使用let声明
- {}块级属性
- 没有变量提升
- const 常量
箭头函数
var f = (x,y)=>{
return x+y;
}
第一v 表示参数 箭头右侧是代码执行语句
不能做构造函数?
class
用于合并对象
后两个对象会被合并到第一个里边
var target = {a:1};
var source = {b:1};
var source2 = {c:1};
object.assign(target,source,source2);
两个工具方法库
ajax 中常用的两种方法
1、两个函数执行完成后执行第三个函数
function end() {
console.log('我最后执行')
}
var ajax1 = $.get('ajax1.js');
var ajax2 = $.get('ajax2.js');
$.when(ajax1, ajax2).then(function() {
end();
})
2、两个函数按照顺序执行
(Promise A+)
ajax1.then(function(ajax1){
consle.log(ajax1)
//得到ajax1的值
return ajax2;
}).then(function(ajax2){
//这里拿到的是ajax2的值
console.log(ajax2);
})
3、补充 使用jq中的方法 直接计数 实现两个函数执行完成之后执行第三个
var i = 0;
function isDon(){
i++;
if(i==2){
end();
}
}
放到函数中执行isDon函数。根据计数法执行完之后执行end()函数。
$.deferred 模块
deferred对象就是jQuery的回调函数解决方案
(上两个方法依赖于底层的deferred模块)
//异步状态机
- pending 等待
- resolve 成功
- reject 失败