TypeScript和JavaScript哪种语言更先进

近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScript技术栈不断的向世界证明自己的价值。JavaScript代码越写越大,众所周知,JavaScript是一门动态语言,缺少静态类型检查,这样就很难在编译阶段排除更多的问题,当然,这就是动态语言的魅力所在,运行时动态处理类型,在我们写代码的时候就可以很更灵活。为了给JavaScript增加类型检查以及一些其他能力TypeScript应运而生,不能说TypeScript有多牛,只能说TypeScript顺应了时代需要。那么说了半天TypeScript和JavaScript哪种语言更先进呢?

让我们从以下方面来谈谈,

1.从历史包袱角度说JavaScript的包袱是前向兼容,即使老版本的ES中有落后的方面,为了兼容,也要支持,而TypeScript宣称完全兼容JavaScript,这导致了TypeScript继承了JavaScript一切的缺点,所以从这点上看可以说是不相伯仲。

2.TypeScript的作者也是C#的作者,这导致了TypeScript从C#继承了很多优雅的设计比如枚举,泛型等语言特性,这让TypeScript增色不少。


3.TypeScript带有编译期类型检查,在写大程序的时候有优势,更容易重构和让别人理解代码的意图,但是这带来了一个问题就是语法上的拖沓冗长,不够漂亮。

4.知道Groovy和Java的朋友和容易看出来,TypeScript和JavaScript的关系实际上就是Groovy和Java的关系,一个动态,一个静态,一个灵活,一个稳健,哪个更先进,要看你从哪个方面来说了。

5. 下面是完成同样功能的两段简单代码,大家可以简单比较一下,看看自己喜欢那种品位。

TypeScript Code:class Greeter {greeting: string;constructor (message: string) {this.greeting = message;}greet() {return "Hello, " + this.greeting;}
}  

JavaScript Code:var Greeter = (function () {function Greeter(message) {this.greeting = message;}Greeter.prototype.greet = function () {return "Hello, " + this.greeting;};return Greeter;
})();

总结

TypeScript is c# version JavaScript, JavaScript is groovy version Java of Typescript which one is better depends on what you are going to do.

转载于:https://www.cnblogs.com/pugang/p/6399292.html

TypeScript和JavaScript哪种语言更先进相关推荐

  1. GIS教程之哪种语言更适合地理可视化:R 还是 Python?

    在这篇博文中,我构建了两个交互式地图,一个使用 Python,另一个使用 R 来决定哪种语言更适合这项工作. 使用 R 和传单构建交互式地图 第 1 步:导入地理数据 data <- read. ...

  2. 哪种语言更适合做自动化测试?

    经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任.因此,小编今天专门写了一篇文章来回答这个问题.欢迎各位大佬补充~ 1.什 ...

  3. ABAP, Java和JavaScript三种语言的比较

    写这个系列的初衷是SAP Chengdu office有越来越多的应届毕业生加入,这些新同事通过在大学的专业学习,具备了Java和JavaScript背景,但是进入SAP之后大家觉得ABAP没有Jav ...

  4. 编程入门python java和c语言_学习编程适不适合从Python入门?哪种语言更适合入门?...

    本文对比了C语言和Python语言,分析它们作为编程入门语言各自的利弊,并给出了我推荐的编程学习道路. 我本身已经入门了Python脚本语言,在进阶C语言和JAVA语言后,Python重学就轻松很多, ...

  5. aes加密算法python语言实现_C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]...

    原文:http://outofmemory.cn/code-snippet/35524/AES-with-javascript-java-csharp-python-or-php c#里面的AES加密 ...

  6. java和c语言的区别_C语言为何不会过时?你需要掌握多少种语言?

    关注.星标公众号,不错过精彩内容 整理/排版:付斌 转自:嵌入式ARM 01 为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过 ...

  7. window直接运行不需要环境的软件是什么语言开发的_C语言为何不会过时?你需要掌握多少种语言?_C 语言...

    01为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:"s b!"这个在 ...

  8. C语言为何不会过时?你需要掌握多少种语言?

    01为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:"傻逼!"这个在心 ...

  9. 程序员入门c语言还是java,先学java还是c语言?入门学哪种语言?

    很多刚接触编程语言的小伙伴都会有一个疑问先学 Java 还是 C 语言?今天 W3Cschool 小编就来和大家简单介绍一些,做个对比相信小伙伴们能够自行作出适合自己的判断. 在探讨先学 Java 还 ...

最新文章

  1. 事件绑定在IE下this是window的问题
  2. 《评人工智能如何走向新阶段》后记(再续21)
  3. 阿里程序员35岁P7!4年了晋升无望!明年股票拿完,年包腰斩!世界那么大,要不要去看看?...
  4. 【转】 ASP.NET 3.5中使用新的ListView控件
  5. ARM的嵌入式Linux移植体验之操作系统
  6. 可变和不可变的数据类型
  7. sourcetree打开快捷_Sourcetree使用:拉取打开项目的步骤
  8. left join on and 与 left join on where的区别
  9. [css] 用css画一个太阳
  10. network怎么断点调试_Windows 网络编程:调试 API
  11. 【历史回顾】Linux发展一览
  12. SQLServer2008将表数据导出的方法
  13. VC6中编译器/zm问题
  14. C++中的setw()函数
  15. 有关一级域名二级域名三级域名
  16. 共模电感适用的频率_共模电感的原理以及使用情况
  17. Cesium中的儒略日JulianDate
  18. 中国十大域名注册虚拟主机提供商排行榜
  19. AI对于人类来说到底是福还是祸?
  20. springboot远程心电诊断系统毕业设计源码091759

热门文章

  1. 2013 ACM/ICPC 长沙网络赛J题
  2. C++中图像处理的类之二 CImg
  3. 创新工场CE0李开复:互联网创业黄金时代来临
  4. unused import statement
  5. jinja2语法中{%raw%}和{{}}的等效替换
  6. CentOS下面ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  7. None用法+连接字符串优先使用join +用format而不是%+区别可变对象和不可变对象(list的深拷贝和浅拷贝)
  8. 入行以来涉及的技术简史
  9. SecureCRT中的实用配置
  10. go语言int类型转化成string类型的方式