Skip to main content

· 21 min read

《手写 Promise》是一个经典的问题,基本上大家上手都可以按照自己的理解,写出来一个 promise, 有一天个朋友问我,"手写 Promise 要写到什么程度才是合格的 ?", 这也引起了我的兴趣和思考, "怎么样的 Promise ,才是完美的呢 ? "

· 7 min read

什么是作用域

在讨论 var 、let 、const 的不同之前,我们首先要了解下什么是作用域, 作用域用来指定变量/函数可供访问的范围,即变量/函数被定义和访问的范围及关系

什么是变量提升

变量提升是 JavaScript 的一种机制, 简单来说就是在执行代码之前,变量和函数声明会移至其作用域的顶部

var/let/const的区别主要还是在其关键字对应声明的变量的作用域区别,还有变量提升带来的访问区别

· 11 min read

异步与单线程

大家都听说过『javascript 是单线程的』这个说法, 那么为什么是单线程的, 这个就得从这门语言被设计出来的背景说起了,javascript 当初主要就是被设计出来用于网页 dom文档 操作,如果是多线程,那么相当于一个文件被多个句柄打开并操作, 这样子很容易出现文档的不同步,导致问题的出现,web 视图出现混乱,因此这门语言被设计成单线程的

· One min read

JS 语言在诞生之后就伴随着"不严谨","问题多"的说法, 加上浏览器BOM api,DOM api 的差异, 导致了使用上稍微不注意就会存在 bug, 下面针对一些比较常见的存在差别但是又经常混用的 api、语法和概念,进行讲解, 先挖坑,慢慢填

· 13 min read

前端是一个非常广泛的领域,简单的概括是所有能在设备屏幕上面展示,提供人机交付功能的技术领域,例如 移动端的 app 开发技术,PC 端的软件开发技术,还有比如一些非常规设备的比如智能家电,智能穿戴设备屏幕上的软件开发技术,都属于前端技术范畴。当然,我们这个系列讨论的范围,主要是以 html,css,js 为基础,在浏览器、webView等软件上面进行交互界面显示的前端技术及生态。