2015年6月发布了ES 6,也就是我们今天广泛使用的版本。这之后每年6月发布一个极小更新的ES版本,比如2016年6月发布的 ES 2016 叫做ES 7,而这个版本只增加了两个新特性。截止目前,ES 11的提案已经定稿了。
2015年6月发布了ES 6,也就是我们今天广泛使用的版本。这之后每年6月发布一个极小更新的ES版本,比如2016年6月发布的 ES 2016 叫做ES 7,而这个版本只增加了两个新特性。截止目前,ES 11的提案已经定稿了。
typeof
一般被用于判断一个变量的类型,我们可以利用 typeof
来判断 number
, string
, object
, boolean
, function
, undefined
,symbol
这七种类型,这种判断能帮助我们搞定一些问题,比如在判断不是 object
类型的数据的时候,typeof
能比较清楚的告诉我们具体是哪一类的类型。但是,很遗憾的一点是,typeof
在判断一个 object
的数据的时候只能告诉我们这个数据是 object
, 而不能细致的具体到是哪一种 object
, 比如
在这里汇总一些 JS 常用技术的源码实现,通过源码了解其内部原理,可以加深对其的理解。
抛开JavaScript自带的class语法糖实现类的继承,如果用原生JavaScript实现类的继承,有以下六种方式,其实现代码与优缺点分析如下
在ES6之前,JavaScript 中除了基础类型外的数据类型都是对象(引用类型),没有类(class),为了实现类似继承以便复用代码的能力,JavaScript选择了原型和原型链。甚至在ES6之后,JavaScript也没有真正的类(class)。ES6虽然提供了class关键字让我么可以伪造一个“类”,但其实只是语法糖而已,本质上仍然是一个对象。ES6实现的继承,本质仍是基于原型和原型链。
闭包是JavaScript的强大的特性,很多强大JavaScript库比如jQuery、Vue.js都使用了闭包的特性来实现的,同时,闭包也是js里的理解难点之一。