JavaScript和TypeScript的对比

注:参考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的笔记

概要介绍

JavaScript

JavaScript是一种基于客户端浏览器的,基于对象、事件驱动式的脚本语言。稍提一下,JavaScript和Java没有任何关系,两者相当于雷峰塔和雷锋的关系。

  1. JavaScript是一种脚本编写语言,无需编译,只要嵌入HTML代码中,就能在浏览器中加载执行。
  2. JavaScript是一种基于对象的语言,可以创建对象同时使用现有对象。但是JavaScript并不支持面向对象语言所承载的继承和重载功能。
  3. JavaScript使用的变量是弱类型。
  4. JavaScript语言较为安全,仅在浏览器端执行,不会访问本地硬盘数据。
  5. JavaScript语言具有动态性。JavaScript是事件驱动的,只根据用户的操作做出相应的反应处理。
  6. JavaScript只依赖于浏览器,与操作系统的因素无关。因此JavaScript是一种跨平台的语言。
  7. JavaScript兼容性极好,能够与其他技术(如XML、REST API等)一起使用

TypeScript

TypeScript是JavaScript类型的超类,它可以编译成纯JavaScript。TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。

  1. TypeScript是Microsoft推出的开源语言,使用Apache授权协议
  2. TypeScript增加了静态类型、类、模块、接口和类型注解
  3. TypeScript可用于开发大型的应用
  4. TypeScript易学易于理解

JavaScript和TypeScript的主要差异

TypeScript可以使用JavaScript中的所有代码和编程概念,TypeScript是为了使JavaScript的开发变得更加容易而创建的。

  1. TypeScript从核心语言方面和类概念方面的模塑方面对JavaScript对象模型进行扩展。
  2. JavaScript代码可以在无需任何修改的情况下与TypeScript一同工作,同时可以使用编译器将TypeScript代码转换为JavaScript。
  3. TypeScript通过类型注解提供编译时的静态类型检查。
  4. TypeScript中的数据要求带有明确的类型,JavaScript不要求。
  5. TypeScript提供了缺省参数值。
  6. TypeScript引入了JavaScript中没有的“类”概念。
  7. TypeScript中引入模块的概念,可以把声明、数据、函数和类封装在模块中。

TypeScript的优势

  1. 静态类型化,允许开发人员编写更健壮的代码并对其进行维护。
  2. 大型的开发项目,使用TypeScript工具来进行重构更容易、便捷。
  3. 类型安全,在编码期间检测错误的功能,而不是在编译项目时检测错误。
  4. 干净的ECMAScript6代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。

JavaScript的优势

  1. JavaScript的开发者社区仍然巨大而活跃,在社区可以很容易找到大量成熟的开发项目和可用资源。
  2. JavaScript语言发展较早,也较为成熟。
  3. TypeScript代码需要被编译(成JavaScript)
  4. 不需要注释
  5. JavaScript的灵活性更高

灵活选择

在开发大型开发项目时,使用TypeScript更加合适。如果有一个相对较小的编码项目,似乎没有必要使用TypeScript,只需使用JavaScript。

TypeScript和JavaScript的区别的更多相关文章

  1. TypeScript 和 JavaScript 的区别

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集.JavaScript 和 TypeSc ...

  2. Typescript 和 Javascript之间的区别

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...

  3. TypeScript VS JavaScript 深度对比

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...

  4. 好程序员技术分享html5和JavaScript的区别

    好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5.CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称.如PC端网站 ...

  5. TypeScript 强类型 JavaScript – Rafy Web 框架选型

    今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法. 理想的 JavaScript 开发模式 ...

  6. 前端面试-难点问题2-java和javascript的区别

    经过多方面的参考,结合自己掌握的知识,总结了一下java和javascript的区别.欢迎大家评论! 一.关系 虽然java和javascript在名字和语法上有一点相似,并且有一些联系,javasc ...

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

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

  8. ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)

    ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)

  9. 超链接a标签的href与onclick中使用javascript的区别

    onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在<a href=" ...

随机推荐

  1. 同步任务 AsyncTask 介绍

    AsyncTask 顾名思义,是在我们需要执行同步任务的时候使用,这个类可以做一些后台操作,然后将结果返回的UI来,因为这个类本身封装了Handler和Thread,所以我们不需要直接去操作这两个类, ...

  2. ARM-LINUX学习记录

    1:调用C语言函数之前会有一段汇编代码在前面执行来完成软硬件方面的初始化.比如:关闭看门狗:初始化时钟:设置堆栈:调用main函数等.在学习51单片机时候这些操作是由开发环境(如KEIL)在编译C代码 ...

  3. 【leetcode】908. Smallest Range I

    题目如下: 解题思路:简单的不能再简单的题目了,对于任意一个A[i]来说,其可能的最小的最大值是A[i]-K,最大的最小值是A[i]+K.遍历数组,求出所有元素中最大的最小值和最小的最大值,两者之差( ...

  4. shell读取文件第一行和最后一行,小数的运算比较

    1. 读取文件的第一行:head -n +1 file.txt 读取文件的最后一行: tail -n -1 file.txt echo 12:30:55 | cut -d: -f 1 结果为12,意思 ...

  5. Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块

    sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit() sys.path 返回模块的搜索路径,初始化时使用PYTHONPA ...

  6. BN和正则化一起使用的后果

    就是因为 batch norm 过后, weight 影响没那么重了,所以 l2 weight decay 的效果就不明显了. 证明了L2正则化与归一化相结合时没有正则化效应.相反,正则化会影响权重的 ...

  7. BZOJ 2839: 集合计数(二项式反演)

    传送门 解题思路 设\(f(k)\)为交集元素个数为\(k\)的方案数.发现我们并不能直接求出\(f(k)\),就考虑容斥之类的东西,容斥首先要扩大限制,再设\(g(k)\)表示至少有\(k\)个交集 ...

  8. 解析crontab php自动运行的方法

    crontab是linux自带的一个命令 使php自动运行的方法php自动运行有很多方法,这里分以下DZ以及一些通过系统完成的方法和直接触发运行驻留系统的方法.Discuz后台有个计划任务,可以使ph ...

  9. Webx.0-Web2.0:Web2.0

    ylbtech-Webx.0-Web2.0:Web2.0 Web2.0 是相对于Web1.0 的新的时代.指的是一个利用Web的平台,由用户主导而生成的内容互联网产品模式,为了区别传统由网站雇员主导生 ...

  10. 3、jQuery面向对象

    1.首先介绍callback.js对ajax进行了封装 function ajaxFunction(){ var xmlHttp; try{ // Firefox, Opera 8.0+, Safar ...