JavaScript “上层”语言
写在前面,
众所都周知,JavaScript 是一门高级(“上层”)
语言,是最受欢迎的编程语言之意义,而对于前端的地位来说可谓是重中之重,他和 HTML、CSS
合成网络三剑客,在前端领域扮演着不可或缺的角色。而随着历史的发展,由他衍生出的框架也是不计其数,其中最为流行的就是 Vue和React
。说了这么多,那它到底是什么呢?接下来由我来带大家一探究竟。
JavaScript 发展史
1995 年 NetScript 公司希望借助 Java 语言的声势,他们雇佣程序员十天时间就设计完成了这种语言的第一版,命名为 JavaScript,对外宣称 JavaScript 是 Java 的补充,目的是为了利用 Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从此变成了因特网的必备组件。
1997 年,ECMA 组织发布 262 号标准文件(ECMA-262),里面规定了浏览器脚本语言的标准,并将这种语言成为 ECMAScript。
同年,ECMAScript 1.0 发布。
1998 年,ECMAScript 2.0 发布。
1999 年,ECMAScript 3.0 发布。
2007-2009 年,ECMAScript 4.0 草案发布,对 3.0 版本做了大幅升级,但是草案过于激进,各方发生严重分歧,中止 4.0 的开发,将其中涉及现有功能改善的一小部分,发布为 ECMAScript 3.1,会后不久,改名为 ECMAScript 5。
2011 年,EMAScript 5.1 发布,并成为 ISO 国际标准,到了 2012 年,所有主要浏览器都支持 ECMAScript 5.1 的全部功能。
2013-2015 年,讨论发布 ECMAScript 6,并于 2015 年正式发布 ECMAScript 6,更名为 ECMASCript 2015。
ECMAScript 6
ECMAScript 6 简称 ES6,它现在基本上已经在我们的项目中处处可以见。而它更新出的一些新特性,也为我们的开发提供了很大的便捷。
变量提升
说到新特性,首当其冲的就是新增了 let, const
变量的声明方式。它的出现解决了 var 声明变量产生的很多错误。其中 var 声明变量时,就会产生变量提升。
变量提升:</br>当执⾏ JS 代码时,会⽣成执⾏环境,只要代码不是写在函数中的,就是在全局执⾏环境中,函数中的代码会产⽣函数执⾏环境,只此两种执⾏环境。在⽣成执⾏环境时,会有两个阶段。第⼀个阶段是创建的阶段, JS 解释器会找出需要提升的变量和函数,并且给他们提前在内存中开辟好空间,函数的话会将整个函数存⼊内存中,变量只声明并且赋值为 undefined ,所以在第⼆个阶段,也就是代码执⾏阶段,我们可以直接提前使⽤。
在提升的过程中,相同的函数会覆盖上⼀个函数,并且函数优先于变量提升。
Promise
Promise 是 ES6 新增的语法,解决了回调地狱的问题。
可以把 Promise 看成⼀个状态机。初始是 pending 状态,可以通过函数 resolve 和 reject ,将状态转变为 resolved 或者 rejected 状态,状态⼀旦改变就不能再次变化。
then 函数会返回⼀个 Promise 实例,并且该返回值是⼀个新的实例⽽不是之前的实例。因为 Promise 规范规定除了 pending 状态,其他状态是不可以改变的,如果返回的是⼀个相同实例的话,多个 then 调⽤就失去意义了。 对于 then 来说,本质上可以把它看成是 flatMap。
哐哐哐,今天就先到合理了,我们下期再见,欢迎大家留言评论,如有错误,请大家指正,如果觉得写的不好,请大家多多见谅。我是 Augus,一个爱瞎搞的软件开发工程师。End~~~
评论