TypeScript和JavaScript的区别
JavaScript和TypeScript的对比
注:参考https://juejin.im/entry/5a52ed336fb9a01cbd586f9f做的笔记
概要介绍
JavaScript
JavaScript是一种基于客户端浏览器的,基于对象、事件驱动式的脚本语言。稍提一下,JavaScript和Java没有任何关系,两者相当于雷峰塔和雷锋的关系。
- JavaScript是一种脚本编写语言,无需编译,只要嵌入HTML代码中,就能在浏览器中加载执行。
- JavaScript是一种基于对象的语言,可以创建对象同时使用现有对象。但是JavaScript并不支持面向对象语言所承载的继承和重载功能。
- JavaScript使用的变量是弱类型。
- JavaScript语言较为安全,仅在浏览器端执行,不会访问本地硬盘数据。
- JavaScript语言具有动态性。JavaScript是事件驱动的,只根据用户的操作做出相应的反应处理。
- JavaScript只依赖于浏览器,与操作系统的因素无关。因此JavaScript是一种跨平台的语言。
- JavaScript兼容性极好,能够与其他技术(如XML、REST API等)一起使用
TypeScript
TypeScript是JavaScript类型的超类,它可以编译成纯JavaScript。TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。
- TypeScript是Microsoft推出的开源语言,使用Apache授权协议
- TypeScript增加了静态类型、类、模块、接口和类型注解
- TypeScript可用于开发大型的应用
- TypeScript易学易于理解
JavaScript和TypeScript的主要差异
TypeScript可以使用JavaScript中的所有代码和编程概念,TypeScript是为了使JavaScript的开发变得更加容易而创建的。
- TypeScript从核心语言方面和类概念方面的模塑方面对JavaScript对象模型进行扩展。
- JavaScript代码可以在无需任何修改的情况下与TypeScript一同工作,同时可以使用编译器将TypeScript代码转换为JavaScript。
- TypeScript通过类型注解提供编译时的静态类型检查。
- TypeScript中的数据要求带有明确的类型,JavaScript不要求。
- TypeScript提供了缺省参数值。
- TypeScript引入了JavaScript中没有的“类”概念。
- TypeScript中引入模块的概念,可以把声明、数据、函数和类封装在模块中。
TypeScript的优势
- 静态类型化,允许开发人员编写更健壮的代码并对其进行维护。
- 大型的开发项目,使用TypeScript工具来进行重构更容易、便捷。
- 类型安全,在编码期间检测错误的功能,而不是在编译项目时检测错误。
- 干净的ECMAScript6代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。
JavaScript的优势
- JavaScript的开发者社区仍然巨大而活跃,在社区可以很容易找到大量成熟的开发项目和可用资源。
- JavaScript语言发展较早,也较为成熟。
- TypeScript代码需要被编译(成JavaScript)
- 不需要注释
- JavaScript的灵活性更高
灵活选择
在开发大型开发项目时,使用TypeScript更加合适。如果有一个相对较小的编码项目,似乎没有必要使用TypeScript,只需使用JavaScript。
TypeScript和JavaScript的区别的更多相关文章
- TypeScript 和 JavaScript 的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集.JavaScript 和 TypeSc ...
- Typescript 和 Javascript之间的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- TypeScript VS JavaScript 深度对比
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- 好程序员技术分享html5和JavaScript的区别
好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5.CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称.如PC端网站 ...
- TypeScript 强类型 JavaScript – Rafy Web 框架选型
今天看到了 AngularJs 2.0 版本将基于 TypeScript 构建 的消息.与同事们对 TypeScript 展开了讨论.本文记录一些个人的想法. 理想的 JavaScript 开发模式 ...
- 前端面试-难点问题2-java和javascript的区别
经过多方面的参考,结合自己掌握的知识,总结了一下java和javascript的区别.欢迎大家评论! 一.关系 虽然java和javascript在名字和语法上有一点相似,并且有一些联系,javasc ...
- TypeScript和JavaScript哪种语言更先进
TypeScript和JavaScript哪种语言更先进 近两年来最火爆的技术栈毫无争议的是JavaScript,随着ES6的普及,不管是从前端的浏览器来看,还是后端的NodeJS场景,JavaScr ...
- ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)
ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)
- 超链接a标签的href与onclick中使用javascript的区别
onclick中javascript的区别一般没用到都没注意,但出错时才有些郁闷,看文本章解释如下: 以前一直很随意,后来看.net里的linkbutton似乎是用在<a href=" ...
随机推荐
- object of type 'Response' has no len()
看见没,这里括号弄错了! 网上解释是requests.get()得到的是一个response对象,无法用BeautifulSoup解析,如果要解析,解析对象应该是requests.get().cont ...
- VINS 检测回环辅助激光建图
最近接到一个任务,在激光检测回环失败时,比如黑色物体多,场景大等,可否利用视觉进行回环检测.如果只是检测回环,现有的许多框架都可以使用.ORB-SLAM本身就有单目模式,且效果不错.但是发现ORB在检 ...
- go读写excel文件
首先,需要安装golang用来操作excel文档的类库: go get github.com/Luxurioust/excelize 一.excel文件创建与写入 package main impor ...
- String类可以被继承吗?我们来聊聊final关键字!
String类可以被继承吗?我们来聊聊final关键字! String在java基础知识中绝对是个重点知识,关于String的一些问题也是非常的多,而且牵涉到内存等高级知识,在面试中也是经常被考察的一 ...
- 初学Vue
指令.组件.数据 指令 指令带有前缀,v-表示它们是Vue提供的特殊属性.如: v-bind:绑定元素属性,如:v-bind:title v-if:条件,绑定DOM 的结构 v-for:循环,使用Ar ...
- 一、Gulp
开发和部署前端项目: 在开发Web应用中为加速客户端资源响应(js和css),减少对js和css的请求,通过bundles来实现. 在ASP.NET5中放弃该特性,被其他类似的组件所代替.比如使用Gu ...
- 九、结构模式之装饰(Decorator)模式
装饰模式又叫包装模式,装饰模式以客户端透明的方式扩展对象的功能,是继承关系的一个替代方案.装饰模式可以在不使用创造更多的子类的情况下,将对象的功能加以扩展. 装饰模式结构图如下: 其包含的角色就分为: ...
- 使用Maven创建Web项目(转)
转自:http://ju.outofmemory.cn/entry/49508 本文通过Maven完成一个简单的Web项目(注意,Spring配置不是重点,看看就行) 1.从Maven模板创建Web应 ...
- Netflix:我们为什么要将GraphQL引入前端架构?
作者|Artem Shtatnov译者|无明 在这篇文章中,我们将分享 Netflix 在这些应用程序的前端架构中引入 GraphQL 所积累的经验. 在内部,我们把用于管理广告创建和组装的主要应用程 ...
- 双联通的tarjan算法
转自:https://www.zhihu.com/question/40746887/answer/88428236 连通分量有三种∶边双连通分量,点双连通分量,强连通分量,前两种属于无向图,后一种属 ...