TS系列篇--TypeScript的诞生

这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战javascript

"不畏惧,不将就,将来的日子好好努力"——你们好!我是小芝麻😄html

1、JS的优缺点

上一篇芝麻同窗已经花费整整一篇来阐述了JS的产生背景,因此JS的优缺点也不言而喻了。java

一、JS的优势

  • 1)JS是一种具备函数优先的轻量级,解释型或即时编译型的编程语言(代码不进行预编译)。
    • 是基于浏览器内核为html添加生命力的脚本语言;
  • 2)弱类型脚本语言:(数据类型能够被忽略的语言,一个变量能够赋不一样数据类型的值);
    • 由于弱类型,因此更加灵活,更易于学习,开发者能够更注重逻辑,不用花费太多时间关心语法的问题;
  • 3)跨平台特性:
    • 在绝大多数浏览器的支持下,能够在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
  • 4)单线程,事件驱动
    • JavaScript对用户的响应,是以事件驱动的方式进行的。在网页(Web Page)中执行了某种操做所产生的动做,被称为“事件”(Event)。例如按下鼠标、移动窗口、选择菜单等均可以被视为事件。当事件发生后,可能会引发相应的事件响应,执行某些对应的脚本,这种机制被称为“事件驱动”。
  • 5)安全性:
    • JavaScript是一种安全性语言,它不容许访问本地的硬盘,并不能将数据存入到服务器上,不容许对网络文档进行修改和删除,只能经过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

二、JS的缺点

毕竟开发周期仅有10天,不少设计考虑的不够周到,并且在网景与IE浏览器交锋中诞生,对于老版本的IE浏览器确定不会很友好。编程

上面咱们罗列了不少JS的优势,这些优势也一样是他的缺点浏览器

  • 1)JS只有在运行时,才会抛出错误(很容易埋下安全隐患)
    • 任何的拼写错误,都不会提示错误;
    • 运行时报的错,指向也未必是错误源头;
  • 2)由于是弱类型语言,因此维护成本比较大,不适合开发大型程序
  • 3)JS 没有类型的概念,声明的变量是动态类型, 虽然灵活易用但不易管理,例如:
    • 加号做为运算符,有两个含义,能够表示数字与数字的和,也能够表示字符与字符的链接。

有关详细的JS设计的缺点推荐你们能够看下阮一峰老师的Javascript的10个设计缺陷安全

2、TS的诞生

既然JS有那么多缺点,那为啥不用新语言替换掉他呢?服务器

  • 这个问题咱们在上一篇已经解释过了,微软曾经试图用JScript替换JS,但最终迫于标准的压力仍是选择了放弃
  • 因为 IE 的市场份额被谷歌 Chrome 攫取,微软在 2015 年使用开源 Chakra JavaScript 引擎打造了全新的 Edge 浏览器。可是到了这个时候,专一于 Web 标准,具有功能强大的 V8 JavaScript 引擎的谷歌Chrome 显然已经赢得了浏览器大战。markdown

  • 浏览器大战结束了,谷歌构建了 ChromeHTML5 也在崛起。谷歌还构建了一个很是高效的 JavaScript 引擎,JavaScript 的效率大大提升了。网络

  • 那时,不少开发人员已开始为浏览器构建庞大的 JavaScript 应用程序,逐渐的发现JS在大型项目上的一些缺点(例如:缺少诸如模块、类等关键功能。并且,缺少一种经过程序中的规则来创建秩序的类型系统)编程语言

咱们还须要使用JS,那有什么可以帮助咱们规避JS的缺点呢?

  • TypeScript 出现以前,微软打算将一种称为 Script Sharp 的工具转变为产品。可是 Hejlsberg 不肯定这些开发人员是否愿意用另外一种语言编写JavaScript代码。因此他开始想解决 JavaScript 的实际问题 关键是要向语言中添加类型系统,并且还不能影响那些让 JavaScript 如此流行的东西。

  • Hejlsberg 决定创建一个“可擦除类型系统”,这个组件使 TypeScript 成为 JavaScript 的超集。在编译时,TypeScript 会删除全部类型并将代码还原回 JavaScript

从某种意义上说,它是一个 type system,只存在于开发人员编程期间,在运行时就会消失。不过在运行的时候,它给你带来的只有好处,没有任何缺点。

TypeScript 最初是个微软内部项目,叫 Strada,致力于提高大型 JS 项目。

  • 2010 年开始开发,
  • 2012 年 10 月发布了第一个开源版本,持续迭代至今

思惟导图

默认文件1628253236553.png

参考文献

[1].TypeScript之父:JS不是竞争对手,曾在害怕开源的微软文化中艰难求生

相关文章
相关标签/搜索