前言 在开发中,你是否会为了系统健壮性,亦或者是为了捕获异步的错误,而频繁的在 async 函数中写 try/catch 的逻辑? 曾经我在《一个合格的中级前端工程师必须要掌...

前言 在开发中,你是否会为了系统健壮性,亦或者是为了捕获异步的错误,而频繁的在 async 函数中写 try/catch 的逻辑? 曾经我在《一个合格的中级前端工程师必须要掌...
Promise的重要性我认为没有必要多讲,概括起来说就是四个字:必!须!得!掌!握!。 而且还要掌握透彻。这篇文章的开头,主要分析一下,为什么会有Promise出现。 在实际...
@顛覆 作者说的工具方法是构造函数的方法,比如 Array.sort ,也就是说把构造函数当成一个普通对象,给它添加了一个方法。
而我觉得既然构造函数(对象)和原型对象在堆内存中都只占了一个坑,那么添加工具方法和添加实例方法消耗的内存应该差不多啊。
前端基础进阶(十三):详细图解jQuery对象,以及如何扩展jQuery插件早几年学习前端,大家都非常热衷于研究jQuery源码。 我至今还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,“原来JavaScript居然...
工具方法是构造函数对象中的方法,实例方法是原型对象中的方法,而这两种对象在内存中都是唯一的。那么作者为什么说实例方法节省了内存,工具方法并不节省内存?
前端基础进阶(十三):详细图解jQuery对象,以及如何扩展jQuery插件早几年学习前端,大家都非常热衷于研究jQuery源码。 我至今还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,“原来JavaScript居然...
configurable 例子中不能修改属性值得原因不是 configurable: false,而是 writable 默认为 false
前端基础进阶(十一):详解面向对象、构造函数、原型与原型链如果要我总结一下学习前端以来我遇到了哪些瓶颈,那么面向对象一定是第一个会想到的。尽管现在对于面向对象有了一些的了解,但是当初那种似懂非懂的痛苦,依然历历在目。 为了帮助大家能...
函数被调用时创建函数执行上下文,执行上下文的创建阶段确定 this 的指向,然后上下文进入执行阶段。
前端基础进阶(七):全方位解读this我们在学习JavaScript的过程中,由于对一些概念理解得不是很清楚,但是又想要通过一些方式把它记下来,于是就很容易草率的给这些概念定下一些方便自己记忆的有偏差的结论。 危...
实现 bind 方法:
Function.prototype.bind2 = function(th) {
var self = this, args = arguments;
return function(){
self.apply(th, [].slice.call(args, 1).concat([].slice.call(arguments)));
}
}
前端基础进阶(七):全方位解读this我们在学习JavaScript的过程中,由于对一些概念理解得不是很清楚,但是又想要通过一些方式把它记下来,于是就很容易草率的给这些概念定下一些方便自己记忆的有偏差的结论。 危...
(foo.bar)(); // 2, 表达式返回的还是foo.bar
(foo.bar = foo.bar)(); // 1,表达式返回的是一个函数,所以this指向null,非严格情况下为window
(false || foo.bar)(); // 1,表达式返回的是一个函数,所以this指向null,非严格情况下为window
(foo.bar, foo.bar)(); // 1,表达式返回的是一个函数,所以this指向null,非严格情况下为window
前端基础进阶(七):全方位解读this我们在学习JavaScript的过程中,由于对一些概念理解得不是很清楚,但是又想要通过一些方式把它记下来,于是就很容易草率的给这些概念定下一些方便自己记忆的有偏差的结论。 危...
console.log() 和 alert() 等函数预期输出一个String值,所以在输出前会调用 toString() 方法,即console.log(fn) 在输出前会调用fn.toString() 。
前端基础进阶(六):setTimeout与循环闭包面试题详解我在闭包一文中的结尾留下了一个关于setTimeout与循环闭包的思考题。 利用闭包,修改下面的代码,让循环输出的结果依次为1, 2, 3, 4, 5 值得高兴的是,很多朋友...
setTimeout语句执行时,将当前的 i 值传递给第二个参数,以及第一个函数参数的参数,然后回调函数中的函数访问 i ,形成闭包。
前端基础进阶(六):setTimeout与循环闭包面试题详解我在闭包一文中的结尾留下了一个关于setTimeout与循环闭包的思考题。 利用闭包,修改下面的代码,让循环输出的结果依次为1, 2, 3, 4, 5 值得高兴的是,很多朋友...
加个函数标识符更好调试
前端基础进阶(五):闭包初学JavaScript时,我在闭包上,走了很多弯路。而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战。 闭包有多重要?如果你是初入前端的朋友,我没有...
总感觉在汤姆大叔那看过类似的
前端基础进阶(五):闭包初学JavaScript时,我在闭包上,走了很多弯路。而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战。 闭包有多重要?如果你是初入前端的朋友,我没有...