首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript和TypeScript之区别,好比现调咖啡和速溶咖啡之不同一样

HTML语言开启了WWW世界的静态描述,而网页脚本语言的问世完全源于动态网页功能之需求,让WWW世界更加精彩。其中,最为流行的肯定是JavaScript,简称JS。做前端开发的程序员必备技能之一,不会JS开发的就不要妄谈网页应用开发。

一、JavaScript

1995年初,网景Netscape公司Brendan Eich,在网景导航者浏览器上首次引入与设计脚本语言实现网页动态交互功能,最初名称叫做Mocha,同年9月改名为LiveScript,同年12月被正式命名为JavaScript,因为当时Netscape与Sun公司组成的开发联盟为了让这门语言搭上Java这个编程语言“热词”,故此将其临时改名为JavaScript,没有想到一直流行至今。

二、ECMAScript

1996年11月,网景正式向ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)提交语言标准,转年1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。因此,JavaScript成为了ECMAScript最著名的实现之一,还有ActionScript和JScript也都是ECMAScript规范的实现语言,它们都遵循ECMAScript脚本语言规范,即共同特点如下:

ECMAScript标准规范,描述了脚本语言的语法和基本对象。

文档对象模型(DOM),描述处理网页内容的方法和接口。

浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015(简称ES5)。ECMAScript 2016(简称ES6)是继ES5之后的一次主要改进,语言规范由ES5.1时代的245页扩充至600页。在ES6中确实增添了许多必要且实用的特性,比如模块、类、Maps、Sets、Promises、生成器(Generators)等。尽管ES6做了大量的功能更新,但是它依旧完全向后兼容以前的版本,标准化委员会决定避免由不兼容版本语言导致的“web体验破碎”。

三、ActionScript

ActionScript是由Macromedia为其Flash产品开发的 ,最初是一种简单的脚本语言。Macromedia后被Adobe收购后,更新到版本ActionScript3.0,这时它已是完全的面向对象的编程语言,其功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA(富互联网应用)开发。ActionScript遵循ECMAscript第四版标准的脚本语言, 只能在Adobe Flash Player运行时环境执行,它在Flash内容和应用程序中实现交互性、数据处理及其他富应用功能。

四、JScript

JScript是由微软公司设计与开发的网页脚本语言,是微软对ECMAScript规范的脚本语言实现。最初,它是随Internet Explorer 3.0于1996年8月发布的,在程序员谈论Internet Explorer中的JavaScript的时候,实际上指的是JScript语言。与微软生态中的其他活动脚本一样,它后来也被Windows Script Host(WSH)和Active Server Page(ASP)所支持。典型的JScript源文件使用的扩展名是.js。JScript最新的版本是基于尚未定稿的ECMAScript4.0版规范的JScript .NET,并且可以在微软的.Net环境下编译,在ECMA的规范上增加了诸多特性。

五、TypeScript

除了JScript语言之外,微软公司又设计与维护了一个新的脚本语言TypeScript,但它不是一个全新实现,而是JavaScript语言的超集。TypeScript与JavaScript的关系,好比C#.NET与C++之间关系一样。TypeScript在浏览器引擎中被真正执行前,会通过编译转换生成JavaScript,之后才能被解释执行。TypeScript包含JavaScript 的所有元素,能运行JavaScript 的代码,并扩展了JavaScript的语法。相比于JavaScript而言 ,它还增加了静态类型、类、模块、接口和类型注解方面的功能,更易于大项目的开发。

言外之意,小规模化项目开发时候,TypeScript相比JavaScript的优势不那么明显,当扩大到几万甚至十几万代码量的系统时候,它的优势非常明显。其实原因也很简单, 包括但不限于的原因有静态类型检查,、代码重构和语言服务,这些都是JavaScript的弱势。那么,概括起来,TypeScript语言的优势有以下这些方面:

TypeScript便于代码注释,让代码的可读性更好。

TypeScript能帮助开发编译时候检测出错误并修改,并方便代码调试。

TypeScript工具使代码重构变得更容易与快捷。

TypeScript 引入了 JavaScript 中没有的“类”与“对象”概念。

TypeScript 中引入了模块的概念,即把声明、数据、函数和类封装在模块中。

随着ECMA标准规范进化至ES6版本,很多TS的专属特性已在原生JS中落地实现了,譬如let/const 基于块级作用域的变量声明、lambda(箭头函数)、class 类等等。JavaScript好比喝的是咖啡厅现调的定制咖啡,TypeScript好比喝的是办公室现冲的速溶咖啡。两者的需求场景不同,故销售场景也不一样,前者在店头销售与现场消费,后者在商超销售与离场消费。但,它们两者都是咖啡,即网页脚本语言,功效一样,仅不过制作过程不一样而已。

当然,如果你希望使用真正面向对象Web开发语言,建议放弃TypeScript语言,转投Dart语言。Dart是谷歌开发的Web编程语言,后来被ECMA (ECMA-408)认定为新一代标准规范。它被用于Web、服务器、移动应用和物联网等领域的开发,又是宽松开源许可证(修改的BSD证书)下的开源软件。Dart是面向对象与类定义的、单继承的语言。它的语法类似C语言,可以转译为JavaScript,支持接口(Interfaces)、混入(Mixins)、抽象类(Abstract Classes)、具体化泛型(Reified Generics)、可选类型(Optional Typing)和Sound Type System。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220430A0B3N400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券