1. ES6是什么 ,为什么要学习它,不学习又会怎么样?
ES6是新一代JavaScript标准,对js语言的核心内容做了升级优化,规范了js的使用标准,新增了一些js原生方法,使得js更加规范,更加优雅,更适合大型应用。学习ES6是成为专业正规军的必经之路。不学习ES6也能打鬼子,但是只能当个游击队长。
2. ES5/ES6和ES2015有什么区别?
ES2015特指2015新发布的新一代js标准,ES6泛指下一代js标准,ES6包括ES2015、ES2016、ES2017、ES2018等,某部分人认为ES7就是ES2018、ES8就是ES2017D等类推(这样不标准)。
3. babel有什么用
babel是一个ES6转码器,可以将ES6高级代码转为ES5低端代码,以便兼容那些低版本浏览器。
4. let有什么用,为什么有了var还要使用let
在ES6之前,声明变量只能用var,var声明变量有很多不合理的点,准确的说是因为ES5中没有块级作用域是很不合理的,甚至可以说是一门语言级别的bug(这也是很多C++,java人员看不懂、瞧不起JavaScript语言的原因之一)。
java语言是sun公司创建作者是詹姆斯·高斯林,在当年非常火。
sun高层不懂技术,要求下属创建另外像java一样火爆的语言,于是Brendan Eich 用了两周时间(10天)创建了JavaScript,实际上JavaScript根java毫无关系,也是由于时间紧促,所以js存在很多不合理的地方。
没有块级作用域会带来很多难以解释的问题,比如for循环var变量泄露,变量覆盖问题,let声明的变量拥有自己的块级作用域,且修复了var声明带来的变量提升问题。
console.log(a)//报错
let a
//let不存在变量提示,var存在
console.log(a)//undefined
var a