JavaScript 是前端开发工程师最重要的技能,没有之一。在 Vue.js、React.js、Koa、Echarts 等框架风靡一时的背景下,原生的 JavaScript 就可以被抛弃了吗?答案是否定的。
typeof 10n;
这个正确的直接结果是:bigint。
那么 bigint 是用来解决什么问题的呢?从字面意思就能猜出 big 的含义,我们知道 Number 基本类型可以精确表示的最大整数是 2^53,如果超出了这个范围那就会出错了,所以在 ES10 提出了 bigint 数据类型来解决这个问题。
开场白结束了,我的观点也表达完了:原生能力是框架所不能取代的。
辩证关系
此时此刻,很多同学还处于朦胧中:原生JavaScript不能被框架所取代,那他俩的关系是什么?需要我二选一吗?
Javascript框架是指以Javascript语言为基础搭建的编程框架
这是百度百科的定义,换句话说框架本质上还是原生的 JavaScript,如果 JavaScript 不具备的能力,框架也注定无能为力。其次,框架更注重的是效率的提升而非能力。比如 Vue.js 让大家编写组件更容易了让我们写业务的开发效率提升了,但是不能说 Vue.js 让原生 JavaScript 的能力增强了。反过来说原生 JavaScript 能在框架之上做什么?那就是写业务逻辑了或者补充框架能力(插件)。比如我们经常使用 Webpack 框架,如果我们想写一个 Webpack 插件还是需要用原生 JavaScript 来编写的。当然就算我们使用 Vue、React 这样的框架,业务逻辑也是需要原生 JavaScript来写的。
JS升级:ES6
前端开发者一路从 ES3 写到 ES5,2015年发布了 ES6 让原生 JavaScript 能力大幅提升,Class、Proxy、Generator等专用语法和能力标准化,也逐步得到各大浏览器的兼容。对于前端开发者来说我们可以极度精简代码和提升开发效率,不妨看下:
“初始化一个数组,要求数组的长度是 5,每个元素的默认值是 0”
这道题看似非常简单,我们可能会这样来写代码:
const arr = []
for(let i = 0; i < 5; i++){
arr.push(0)
}
web前端开发学习Q-q-u-n: 731771211 ,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频,PDF)
可是如果你学习过 ES6 的语法,就会知道 Array 新增的原型对象方法上有个 fill 的 API,它可以轻松实现这个题目,代码如下:
const arr = Array(5).fill(0)
这就是新的语法赋予 JavaScript 新的能力