前言

身为一个前端开发工程师,可以说就是靠js吃饭的,但是ts也应该是我们必备的技能,我接触学习ts是在实习公司做了一个项目,一开始自己认为ts区别js就是声明标量的时候一定要标注数据类型,现在只能说当时理解很嫩,接下来就详细介绍一下两者吧:

TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢?

JavaScript 和 TypeScript 的概要介绍

JavaScript

JavaScript 是一种轻量级的解释性脚本语言,可嵌入到 HTML 页面中,在浏览器端执行,能够实现浏览器端丰富的交互功能,为用户带来流畅多样的用户体验。

JavaScript 是基于对象和事件驱动的,无需特定的语言环境,只需在支持的浏览器上就能运行。

JavaScript 语言具有以下特点:

  • JavaScript 是一种脚本编写语言,无需编译,只要嵌入 HTML 代码中,就能由浏览器逐行加载解释执行。

  • JavaScript 是一种基于对象的语言,可以创建对象同时使用现有对象。但是 Javascript 并不支持其它面向对象语言所具有的继承和重载功能。

  • JavaScript 的语法简单,使用的变量为弱类型。

  • JavaScript 语言较为安全,仅在浏览器端执行,不会访问本地硬盘数据。

  • JavaScript 语言具有动态性。JavaScript 是事件驱动的,只根据用户的操作做出相应的反应处理。

  • JavaScript 只依赖于浏览器,与操作系统的因素无关。因此 JavaScript 是一种跨平台的语言。

  • JavaScript 兼容性较好,能够与其他技术(如 XML,REST API 等)一起使用。

TypeScript

TypeScript 是 Microsoft 开发和维护的一种面向对象的编程语言。它是 JavaScript 的超集,包含了 JavaScript 的所有元素,可以载入 JavaScript 代码运行,并扩展了 JavaScript 的语法。

TypeScript 具有以下特点:

  • TypeScript 是 Microsoft 推出的开源语言,使用 Apache 授权协议

  • TypeScript 增加了静态类型、类、模块、接口和类型注解

  • TypeScript 可用于开发大型的应用

  • TypeScript 易学易于理解

JavaScript 和 TypeScript 的主要差异

TypeScript 可以使用 JavaScript 中的所有代码和编码概念,TypeScript 是为了使 JavaScript 的开发变得更加容易而创建的。例如,TypeScript 使用类型和接口等概念来描述正在使用的数据,这使开发人员能够快速检测错误并调试应用程序

  • TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行扩展。

  • JavaScript 代码可以在无需任何修改的情况下与 TypeScript 一同工作,同时可以使用编译器将 TypeScript 代码转换为 JavaScript。

  • TypeScript 通过类型注解提供编译时的静态类型检查。

  • TypeScript 中的数据要求带有明确的类型,JavaScript不要求。

  • TypeScript 为函数提供了缺省参数值。

  • TypeScript 引入了 JavaScript 中没有的“类”概念。

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

TypeScript 的优势

下面列举 TypeScript 相比于 JavaScript 的显著优势:

1. 静态输入

静态类型化是一种功能,可以在开发人员编写脚本时检测错误。查找并修复错误是当今开发团队的迫切需求。有了这项功能,就会允许开发人员编写更健壮的代码并对其进行维护,以便使得代码质量更好、更清晰。

2. 大型的开发项目

有时为了改进开发项目,需要对代码库进行小的增量更改。这些小小的变化可能会产生严重的、意想不到的后果,因此有必要撤销这些变化。使用TypeScript工具来进行重构更变的容易、快捷。

3. 更好的协作

当发开大型项目时,会有许多开发人员,此时乱码和错误的机也会增加。类型安全是一种在编码期间检测错误的功能,而不是在编译项目时检测错误。这为开发团队创建了一个更高效的编码和调试过程。

4. 更强的生产力

干净的 ECMAScript 6 代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。这些功能也有助于编译器创建优化的代码。

JavaScript 的优势

相比于 TypeScript,JavaScript 也有一些明显优势。

1. 人气

JavaScript 的开发者社区仍然是巨大而活跃的,在社区中可以很方便地找到大量成熟的开发项目和可用资源。

2. 学习曲线

由于 JavaScript 语言发展的较早,也较为成熟,所以仍有一大批开发人员坚持使用他们熟悉的脚本语言 JavaScript,而不是学习 TypeScript。

3. 本地浏览器支持

TypeScript 代码需要被编译(输出 JavaScript 代码),这是 TypeScript 代码执行时的一个额外的步骤。

4. 不需要注释

为了充分利用 TypeScript 特性,开发人员需要不断注释他们的代码,这可能会使项目效率降低。

5. 灵活性

有些开发人员更喜欢 JavaScript 的灵活性。

如何抉择呢?

根据我用的以及开发项目的总结(个人观点):

TypeScript 正在成为开发大型编码项目的有力工具。因为其面向对象编程语言的结构保持了代码的清洁、一致和简单的调试。因此在应对大型开发项目时,使用 TypeScript 更加合适。如果有一个相对较小的编码项目,似乎没有必要使用 TypeScript,只需使用灵活的 JavaScript 即可。

萝卜青菜各有所爱------TypeScript VS JavaScript相关推荐

  1. 搭建Linux 编程工具-萝卜青菜各有所爱

    你懂的,不解释 1) # yum install git // set admin and some client. the client have to send patch to the admi ...

  2. 这些是不是程序员爱不释手的10款神级工具【萝卜青菜各有所爱】

    程序员爱不释手的10款神级工具,有你所用的一款吗? 一.Wireshark Wireshark是广大黑客.网络攻城狮的最爱,极大的方便了我们抓取.分析网络数据包. 二.VMware VMware虚拟机 ...

  3. 单片机小白学步系列(七) 准备实验板——萝卜青菜,各有所爱

    单片机的学习,最重要的一点就是多实践.站在岸上学不会游泳.没有实践,恐怕永远也学不好单片机.我将和大家一起,选择一款适合自己的单片机实验板. 我们主要有三个可选方案: 1.自己动手搭建学习板: 2.购 ...

  4. 微软推出VS Code新特性,为TypeScript和JavaScript用户提供AI辅助开发功能

    除了开发人员非常喜欢的IntelliSense和代码完成之外,今年早些时候,微软还发布了IntelliCode,提供了一组AI辅助开发功能.VS Code团队现在宣布了一项新的实验性扩展,将Intel ...

  5. Typescript 和 Javascript之间的区别

    JavaScript 和 TypeScript 的概要介绍 JavaScript JavaScript 是一种轻量级的解释性脚本语言,可嵌入到 HTML 页面中,在浏览器端执行,能够实现浏览器端丰富的 ...

  6. TypeScript和JavaScript哪种语言更先进

    TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...

  7. 微软推出 VS Code 新特性,为 TypeScript 和 JavaScript 用户提供 AI 辅助开发功能

    除了开发人员非常喜欢的IntelliSense和代码完成之外,今年早些时候,微软还发布了IntelliCode,提供了一组 AI 辅助开发功能.VS Code 团队现在宣布了一项新的实验性扩展,将 I ...

  8. typescript或javascript深拷贝Object json

    typescript或javascript深拷贝Object json Object的json对象很多时候我们需要深拷贝,我写了两个工具函数,供大家参考. deepCopyObject 深拷贝一个Ob ...

  9. Vue.js 作者尤雨溪:TypeScript 与 JavaScript 并行才切合实际!

    作者 | Evrone 译者 | 弯月,责编 | 杨碧玉 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 简介 尤雨溪是一名优秀的软件开发人员,同时是开 ...

  10. [ Typescript 手册] JavaScript `Array` 在 Typescript 中的接口

    [ Typescript 手册] JavaScript `Array` 在 Typescript 中的接口 本文地址:https://blog.csdn.net/qq_28550263/article ...

最新文章

  1. php中if的效率,PHP中if和or运行效率对比
  2. Word2vec原理浅析及tensorflow实现
  3. 【华为云技术分享】当我们在谈论卡片时,我们到底在谈论什么?
  4. QTdesigner使用--待更新
  5. java用户注册模块_用户注册登录模块设计方案报告.docx
  6. vb.net 画多个矩形_电气原理图和接线图识图方法,电气接线图怎么画?
  7. 数据结构与算法分析:C语言描述(原书第2版) PDF
  8. 色彩空间与色彩深度。详细分析相机中sRGB/AdobeRGB、RAW/JPG到底该怎么选
  9. JS网页特效实例:动态关闭页面
  10. 酷狗音乐QQ显示(VC源码)
  11. 特征点检测(Landmark detection)
  12. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十七)具体单板的LED驱动程序
  13. 21和22端口 在java中的使用
  14. 蛮力枚举算法C语言,算法01-蛮力法
  15. html的标题题记有哪些,关于温暖的题记唯美
  16. 两种红外对管的区别——基于硬件中断(外部中断)测距避障
  17. [Android]gradle与Android gradle
  18. 计蒜客:蒜厂年会 -java
  19. 桥水基金的经济分析模式(2)
  20. Oracle10046事件和10053事件实例演示

热门文章

  1. “地理-语言”大模型文心ERNIE-GeoL及应用
  2. (基础)Promise中then()方法使用,多次调用、链式调用
  3. CTF supersqli
  4. 翟菜花:国产游戏为什么还不适合出海“亮剑”
  5. 高速公路联网收费ETC设备可维护性技术要求(征求意见)
  6. android 涨水的动画,Android -- 贝塞尔实现水波纹动画(划重点!!)
  7. java gui 文本框_【Java GUI】文本框和文本区
  8. PCL点云滤波器总结
  9. 好未来 Dolphin-儿童口语表达能力AI自动评测:顶尖AI算法技术与教育理念的有机结合 | 百万人学AI评选
  10. Ubuntu20.04 Server+Xubuntu-desktop英文环境下安装百度五笔