小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
大家好,我是不孤独的孤独,今天整理的是ES6的的一些常见知识问答,方便大家在跳槽时候,拉出来看看这些问题。
什么是ES6? 和ES5、ES2018有什么区别?
ES6是新一代的Js语言标准,对部分Js语言做了核心优化,规范了使用标准,新增了Js原生方法,让Js的使用更加规范,更加优雅,更有利于大型应用的开发。
区别是在现阶段大部分场景里,ES2018、ES2017等等包含在ES6里面,ES2015可以理解为ES5和ES6的时间分界线。
babel是什么,有什么作用?
babel是一个 ES6 转码器,可以将 ES6 代码转为 ES5 代码,以便兼容那些还没支持ES6的平台。
let的作用?
在ES6出现之前,声明变量只能用var,在ES5里面是没有块级作用域这个概念的,随之产生了很多比如变量泄露,覆盖等等问题,let声明的变量让变量有了自己的作用域,修复了var带来的变量提升问题。
ES6对字符串有哪些优化?
举例1: 新增了字符串模板:在拼接大段de字符串时,用反斜杠()取代以往的字符串相加的形式,使得字符串拼接看起来更加直观,更加优雅。
举例2: ES6在String新增了includes()方法,取代了传统只能用indexOf查找包含字符的方法。
举例3: ES6新增了startsWith(), endsWith(), padStart(),padEnd(),repeat()等方法,可方便的用于查找,补全字符串。
ES6对数组有哪些优化?
举例1: 数组结构赋值:ES6可以直接使用let [a,b,c] = [1,2,3]的形式对数组进行赋值。
举例2: 扩展运算符:ES6新增的扩展运算符(...)可以很容易实现数组的复制和解构赋值let a = [2,3,4]; let b = [...a];还可以实现数组和松散序列的相互转化,取代了arguments对象和apply方法,尤其是在ES5中,arguments并不是一个真正的数组,而是一个类数组的对象,但是扩展运算符的逆运算却可以返回一个真正的数组。
举例3: ES6在Array原型上新增了find()方法,用于取代indexOf,还新增了copyWithin(), includes(),fill(),flat()等方法。
摸鱼时间有限,先整理一点~~