ES6标准——学习及应用 1

本文介绍了ECMAScript的发展历程,解释了为何不直接使用JavaScript作为标准化名称的原因,并深入探讨了ES6(即ECMA2015)带来的关键变化,特别是块级作用域的引入及其对变量管理的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、历史问题

ESMAScript 的名称
1、JavaScript的制定者公司是Netscape,该公司为了让JavaScript能够成为一个中标准化的语言, 就将JavaScript交由ESMS来管理,其实ECMA是一个组织, 就是标准化组织。所以后面说的ECMA标准就是在这制定的。但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。
2、那么ECMA2015又是什么呢?其实是ECMA约定了每年都要退出一个新的标准,并且以年号命名,恰好因为ECMA2015这个标准是ECAMScript的第六个版本的第一个标准,也就是ES6的第一个版本,所以就被大家重视了,并且也搞的很混淆。所以说ES6其实包含了ECMA2015、ECMA2016、ECMA2017这样的版本。随着时间的推移,支持度已经越来越高了,超过 90%的 ES6 语法特性都实现了。并且大多数的现代浏览器都已经支持ES6了,但是有个问题, 就是大家往往都不愿意讨论的IE这个奇葩, 在早些年代里IE可是浏览器里的霸主了, 微软也真是成也萧何败萧何,话说微软不是声称1年半一个新的系统吗,咋没消息了,有点跑题了,嘻嘻。
Node
以后要是有时间在写, 理解的太浅了。

ES6的块级作用域

我们都知道,在ES5中顶级作用域是全局作用域,而顶层对象对应的应该是window, 子集作用域实际上也是函数级作用域,使用var定义的变量在这相应的作用域内不会消失,也就是var定义的变量在出了块而没出函数的时候是不会被回收掉的, 然而这样也就出现了这样的问题, 在变量在相应的块中使用完成后, 而是在相应的作用域内成了一个遗留的变量, 这在我一个java开发者的角度来看,起码是不可思议的。ES6中意识到了这个问题,讲作用域限制在了块级,这也就像java一样了, 在相应的块中程序结束后,变量也随即消失,同时内存回收。 并且ES6中使用let定义变量,也推荐非常量和函数及类级别的变量使用let定义。let变量使用需要提前定义,这与大多数的类c语言一致,而在ES5中却不会这样使用。

系统学习推荐

ECMAScript 6 入门-阮一峰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值