1、目标是什么?
在业务上成为专家,在技术上成为行业上的大牛
2、近阶段的目标
不断学习积累各方面的经验,以学习为主
3、长期目标
做几件有价值的事情 如开源作品 、技术框架
4、方式方法
先完成业务上的主要问题,做到极致,然后逐步向目标靠拢
ES6
let、 const //填坑
多行字符串/模板变量 //代码简化(通过反引号和${变量} 可以多行字符串)
解构赋值
块级作用域
函数默认参数
箭头函数
箭头函数this指向问题
http://www.imooc.com/article/288214?block_id=tuijian_wz
有个问题绕我很久 我理解的误区就是在函数里面声明的函数的this就指向外面this 实际上是在调用的对象 如果直接调用的都是window 只有箭头函数才指向最近的this
function fn1() {
console.log('real', this);
// var arr = [1, 2, 3];
function _function1(){
console.log('_function1:',this)
}
var _function2 =()=>{
console.log('_function2:',this)
}
_function1();
_function2();
}
fn1();// //function1:window function2:window
fn1.call({a:100}); //function1:window function2: {a:100}
function1和function2都是在window下定义的 函数里面调用的的function1和function2的this都是指向window的
原型链
普通对象的原型链理解清楚之后 Function和Object的关系让人难以理解 所以这篇文章写得好
https://www.cnblogs.com/web-record/p/9661804.html
然后我自己总结了一下画了图
原型:
问题1:原型的是运用?
描述一下jquery和zepto如何使用原型的
入口函数, 构造函数、原型
描述自己项目中如何使用的
问题2:原型的扩展性?
说一下jquery和zepto的插件机制?
把插件扩展到$.fn中(因为$.fn是实例的原型)
异步:
单线程原因:避免DOM渲染冲突
解决方案:异步
实现方式:event-loop(事件轮询)
轮询执行的意思是:会监视异步队列中有没有事件 有的话就放到主线程中执行
JQuery的deffer功能(在1.5版本之前,不能使用.done.fail功能)
var ajax = $.ajax('./data.json');
ajax.done(function(){
console.log('1')
}).fail(function(){
console.log('fail')
}).done(function(){
console.log('1')
}).fail(function(){
console.log('fail')
})
这样的代码帮助新增而不是去修改callback 有助于扩展和避免 重复的回归测试
下面这种也可
var ajax = $.ajax('./data.json');
ajax.then(function(){
//成功回调
},function(){
//失败回调
}).then(...)
promise串联
一个图片加载结束之后再调用另一张图片 这时在第一个图片结束.then里面返回第二个甲A图片的异步操作
Promise.all传入一个数组 表示全部执行结束再执行回调
Promise.race传入一个数组, 表示最快的执行一个结束就执行回调 不等人
Promise标准
①Promise的状态
Promise必须处于pending,resolved,rejected三个状态之一
②Promise的then方法
Promise的then方法接受两个参数
③https://www.codercto.com/a/55555.html