引言:JavaScript语言规范始终在与时俱进,除了过于激进的ES4被“废除”之外,ES Next始终在茁壮发展。如今,TC39( Technical Committe 39, JavaScript委员会)已经明确表示每年更新一个版本,因此用ES Next表示那些“ 正在演进、正在发展”的新特性集。作为前端开发者,我们该如何看待每年发布一版的…
引言 “对象”这个概念在编程中非常重要,任何语言和领域的开发者都应该具有面向对象思维,有效运用对象。良好的面向对象系统设计将是应用具有健壮性、可维护性和可扩展性的关键;反之,如果面向对象环节有失误,那么项目将会面临灾难性的后果。JavaScript面向对象的实质是基于原型的对象系统,而不是基于类。这是由最初的设计所决定的,是基因层面的特点。随着ES…
通过前面儿篇的学习,我们认识到,想优雅地进行异步操作,必须要熟识-个极其重要的质概念Promise。 它是取代传统回调,实现同步链式写法的解决方案;是理解Generator、async/awat的关键。但是,对于初学者来说,Promise 并不是很好理解,其中的概念纷杂,且抽象程度较高。与此同时,在中高级前端开发面试中,对于Promis…
异步是前端开发中的一个重点内容, 也是难点之一。为了更优雅地实现异步,JavaScript语言在各个历史阶段进行过多种尝试,但是由于异步天生具有一定的“复杂度”,使得开发者并不能够轻松地吃透相关的理论知识并上手实践。在理论方面,我们知道JavaScript 是单线程的,那它又是如何实现异步的呢?在这个环节中,浏览器或Node.js又起到了什么样的作…
有时候面试官不强求开发者准确无误地背诵API,相反面试官喜欢告诉面试者API的使用方法,让面试者实现API。 实现一个API,可以考察面试者对API的理解,更能体现开发者的编程思维和能力。对于积极上进的前端工程师,模仿并实现一些经典方法,应该是“家常便饭”,这是比较基本的要求 第三节,我们探讨一下JQuery的offset( )、数组的redu…
闭包是JS中最基本、最重要的概念之一,闭包绝不是一个单一的概念,它涉及作用域、作用域链、执行上下文、内存管理等多重知识点。 1.作用域 首先是作用域,在ES6之前只有函数作用域和全局作用域之分,ES6中通过let和const声明变量的块级作用域,使得JS的作用域更加丰富。下面说说变量提升和暂时性死区。 下面看个var声明变量的例子 functi…