发布网友 发布时间:2024-10-20 13:36
共1个回答
热心网友 时间:2024-12-01 06:56
JavaScript高级程序设计第4版(后简称高程4),相较于第3版,增加了ES6至ES10的全新内容,删除了旧版过时的内容,并在原有基础上充实了更加翔实的内容。
中文译版于2020年发售,妥妥的“新鲜出炉”,你要是问本瓜:当今学JavaScript哪家强,我只能说:红宝书第4版最在行。
于是乎,借着更文契机,本瓜将开启一个小系列,带你重看一遍高级程序设计4(先前只是跳着跳着看),将抽取精华,用最简单的话解释核心点、尽量把握全局、快速过一遍的同时,记录与工友们分享~~
正文1995年,作为JavaScript的创作者,BrendanEich绝对想不到,他仅用10天写出的脚本语言,竟然在25年以后,连续10年蝉联“最常用编程语言”榜首。
很多人还以刻板的印象认为JavaScript是“玩具语言”,但随着它的不断发展,而今它绝对是最有必要学习的一门编程语言。JavaScript有着强大的语言特性,对于网页和移动开发者来说,深入理解尤为必要。
在第一章《什么是JavaScript》很详细的阐述了JavaScript演进历史,这里用箭头符号简单说明过程:
?Mocha?LiveScript?JavaScript(NetscapeNavigator)、IE(JScript)?ECMAScript言而总之,就是网景浏览器与IE浏览器大战,最终促成了ECMAScript的诞生。
有意思的是,本瓜之前理解:JavaScript包含三个部分,ECMAScript+DOM+BOM,这里也确实这样画了一张图,
但这种包含的理解应该是错误的;语言是实现标准,而不是包含标准;其它语言也可以实现这些标准,比如AdobeActionScript同样也实现了ECMAScript;
所以,应该说:JavaScript实现了ECMAScript标准,同时还实现了DOM和BOM。
那ECMAScript(ecma-262)到底定义了什么?要点如下:
语法
类型
语句
关键字
保留字
操作符
全局对象
CV一个历史版本及主要发布特性:
版本发表日期与前版本的差异11997年6月首版21998年6月格式修正,以使得其形式与ISO/IEC16262国际标准一致31999年12月强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变4放弃由于关于语言的复杂性出现分歧,第4版本被放弃,其中的部分成为了第5版本及Harmony的基础;由ActionScript实现52009年12月新增“严格模式(strictmode)”,一个子集用作提供更彻底的错误检查,以避免结构出错。澄清了许多第3版本的模糊规范,并适应了与规范不一致的真实世界实现的行为。增加了部分新功能,如getters及setters,支持JSON以及在对象属性上更完整的反射5.12011年6月ECMAScript标5.1版形式上完全一致于国际标准ISO/IEC16262:2011。62015年6月ECMAScript2015(ES2015),第6版,最早被称作是ECMAScript6(ES6),添加了类和模块的语法,其他特性包括迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets和weakmaps),promise,reflection和proxies。作为最早的ECMAScriptHarmony版本,也被叫做ES6Harmony。72016年6月ECMAScript2016(ES2016),第7版,多个新的概念和语言特性82017年6月ECMAScript2017(ES2017),第8版,多个新的概念和语言特性92018年6月ECMAScript2018(ES2018),第9版,包含了异步循环,生成器,新的正则表达式特性和rest/spread语法。102019年6月ECMAScript2019(ES2019),第10版112020年6月ECMAScript2020(ES2020),第11版介绍了下ECMAScript,然后就来到我们熟悉的DOM:DocumentObjectModel;
DOM将整个页面抽象为一组分层节点。使用DOMAPI,可以轻松地删除、添加、替换、修改节点。让开发者可以随心所欲地控制网页的内容和结构。
DOM历史上,有4个版本:
版本特性DOMLevel1映射文档结构DOMLevel2增加了对鼠标和用户界面事件、范围、遍历、层叠样式表(CSS)DOMLevel3增加以统一的方式加载和保存文档的方法DOMLivingStandard(DOMLevel4)包括MutationObservers咱就是,不得不感慨,这些版本的历史迭代是导致前端难学的原因之一QAQ
接着行文来到BOM——浏览器对象模型,我们也很熟悉,它提供的能力是关于浏览器的:
弹出新浏览器窗口的能力;
移动、缩放和关闭浏览器窗口的能力;
navigator对象,提供关于浏览器的详尽信息;
location对象,提供浏览器加载页面的详尽信息;
screen对象,提供关于用户屏幕分辨率的详尽信息;
performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
对cookie的支持;
其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。
其实在HTML5之前,各大浏览器对于BOM的实现是不一样的,HTML5改善了这一困境。
小结小结一句吧:
有人问:学习JavaScript有必要了解它的历史吗?本瓜觉得是必要的。了解后,也会发现:还挺有意思的~~
这里觉得有点遗憾的是,关于:JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响,在语法结构上它又与C语言相似,高程4里并没有展开说明,如果能针对这部分历史展开讲讲,就更nice了!!
OK,以上便是本篇分享。觉得不错点个赞吧???,您的鼓励,我的动力,坚持输出质量好文~~欢迎评论留言我是掘金安东尼,输出暴露输入,技术洞见生活。再会吧~~???
原文:https://juejin.cn/post/7101841773978189861