如果你还在用JavaScript,请远离我,不要跟我说话

分类:一家之言 来源:原创 作者:管理员 2019-03-29 08:02

概要:JavaScript已经有很多年的历史了,如今的地位越来越高,越来越多的应用开发会选择使用JavaScript。我一直很喜欢使用JavaScript,它让我的界面变得丰富多彩,让我的应用与用户的交互显得如鱼得水,然而,我到现在开始慢慢地讨厌它。当我接手一个已有的JavaScript项目时,我第一时间会感觉到如此地畏惧。我想,我是时候抛弃这个过去那么多年一直让我爽歪歪的语言了。

历史

  • 1995年5月艾克仅花了十天时间设计出原型,并命名为Mocha

  • 1995年9月在Netscape Navigator 2.0的Beta版中改名为LiveScript

  • 1995年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript

过去与现在

过去

目的纯粹是为了丰富页面的行为与交互。以往我们在写JavaScript时,通篇都是全局的function,好的设计最多就是挂在一个全局变量中。

现在

用户对页面的体验要求越来越高了,JavaScript对丰富页面起到了无可替代的作用。如今不仅在浏览器上大放光彩,服务端、桌面应用程序的开发也非常流行。

总之

JavaScript的代码量占比越来越多,地位也越来越高。

不足

作为解释型的脚本语言,先天不足,抛开那些明明像是bug一样存在的奇怪运行结果,却被某些人拿来当成一个特点。如果你是一位从上面所说的过去到现在一直都接触JavaScript的人,你会发现,现在的JavaScript项目越来越复杂,或者不是复杂,而是专业,如同Java或C#使用IDE新建的Web项目一样,是一个项目,也就是说JavaScript的强大使它变得独立了。能称之为项目,我们更应该认真去对待它、设计它。

步入正题

现在都2019年了,如果你的项目中还没有使用TypeScript,那么,请远离我,不要跟我说话。因为我生活在2019年,而你还生活在2009年。

TypeScript是什么?

官网的定义

某中文网的定义

明显某中文网的最后一行翻译有误,这样的翻译应该会在第一时间误导初学者,初学者可能认为TS就是一个全兼容的比JS更强大的语言。不过,学TS之前,你肯定要先学习JS。

简单一句话:它是JavaScript的超集,在最终运行的环境上需要先编译为JavaScript,之后运行的当然是JS了,和TS就没有半点关系了。

什么是超集?

如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集。

也就是说:TypeScript包含了JavaScript,编写TypeScript代码,相当于也编写了JavaScript代码,并且你还能享受到除JavaScript集合之外的功能。

为什么要先编译为JavaScript?

因为浏览器或其它可以运行js的环境无法识别TypeScript。所以,在最终发布代码之前,要先把它编译成js文件,再发布代码。

注意事项

  • TypeScript只是用来约束开发JavaScript的代码,它是强类型的,有接口、命名空间等。

  • TypeScript集合中除去JavaScript集合外的功能只在开发时起作用,在最终编译成js后是不会起作用的。比如TS中有类型接口等约束,在实际编译后,这种约束修饰会被去掉,因为在js中没有这些东西。

它主要有哪些功能?

  • 基础类型

  • 接口

  • 泛型

  • 枚举

  • 命名空间

  • ...

是不是完全就相当于一门后台语言了?具体的功能点我不在这里细说,这不是本文的重点。

我为什么要用它?

如果你开发过后台语言,比如java,当你把一个字符串赋值给一个整型的变量时,此时编译器会第一时间告诉你,你的代码写错了,需要改正,如果你不改正,你也无法编译通过。而传统的JS的变量就没有这个限制,你完全可以把一个字符串、一个对象随意地赋值给一个变量,或者说,你也可以随意地去扩展一个对象的属性,而开发工具不会给你任何提示。如果你写的代码是有问题的,那么,你只能在真正运行到这个逻辑的时候,你才能发现可能有问题。

如果你在项目中遇到了这些场景,那么,请第一时间考虑使用TypeScript吧:

  • 代码很复杂,经常需要维护

  • 多人开发时,某些成员总是对一些对象进行额外扩展,导致该对象会增加一些额外的属性,而另一成员又不知道这个对象还有这个属性的存在

  • 前后端分离时需要先定义好前端的契约

  • 前端项目需要模块化、工程化

总结

TypeScript使我们的开发过程变得更自律,从而更自由,我们不用再担心因为无类型系统的约束而导致的意想不到的问题。我们可以在以后都尽量不写JavaScript,我们是时候抛弃JavaScript了,而应该拥抱TypeScript。因此,我在所有的项目中,均第一时间选择它,再也不写JavaScript了,从此,整个世界都清静了许多。

TypeScript  JavaScript  

编辑:myweb   最后更新于:2019-03-29 08:05

点评:看完后,我赶紧把现在的JavaScript项目改成TypeScript项目了,倍儿爽~



声明:本站部分文章系本站编辑转载,转载目的在于加快信息的传递,及时与广大网友分享更多信息,并不代表本站赞同其观点和对其真实性负责。 如涉及作品内容、版权和其它问题,请及时与本站联系,我们将在第一时间删除内容!本站文章版权归原作者所有,内容为作者个人观点,本站只提供参考并不构成任何投资及应用的建议。


联系我:x889@foxmail.com,鄂ICP备14016278号-2
©2016-2019 我的ABC All Rights Reserved.
友情链接: 一起编程网