👉关于它们

JavaSript

  • JavaScript 是具有函数优先的、轻量级的、解释型(即时编译型)的一种编程语言
  • JavaScript 基于原型编程,是多范式的动态脚本语言,支持面向对象、命令式和声明式(如函数编程)风格。并且它遵循ECMAScript标准
    • ECMAScript:描述了JavaScript语言的语法和基本对象
    • 文档对象模型(DOM):描述处理网页内容的方法和接口
    • 浏览器对象模型(BOM):描述与浏览器进行交互的方法和接口
  • javaScript 特点
    • JavaScript 是一种脚本编写语言,无需编译,只要嵌入 HTML 代码中,就能由浏览器逐行加载解释执行
    • JavaScript 是一种基于对象的语言,可以创建对象同时使用现有对象。但是 Javascript 并不支持其它面向对象语言所具有的继承和重载功能
    • JavaScript 的语法简单,使用的变量为弱类型
    • JavaScript 语言较为安全,仅在浏览器端执行,不会访问本地硬盘数据
    • JavaScript 语言具有动态性。JavaScript 是事件驱动的,只根据用户的操作做出相应的反应处理
    • JavaScript 只依赖于浏览器,与操作系统的因素无关。因此 JavaScript 是一种跨平台的语言
    • JavaScript 兼容性较好,能够与其他技术(如 XML,REST API 等)一起使用

TypeScript

  • TypeScript 是 Microsoft 开发和维护的一种开源的面向对象的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。它是 JavaScript 的超集,可以被编译成 Javascript;它包含了 JavaScript 的所有元素,并扩展了 JavaScript 的语法;它还可以载入 JavaScript 代码运行(用 Javascript 编写的合法代码,在Typescript 中依然有效)。
  • 语法上,TypeScript 很类似于 JScript .NET,另外一个添加了对静态类型,经典的面向对象语言特性如类,继承,接口、枚举、泛型和命名空间等的支持的 Microsoft 对 ECMAScript 语言标准的实现

👉两者区别

JavaScript

  • 动态类型,运行时明确变量的类型,变量的类型由变量的值决定,并跟随值的改变而改变
  • 直接运行在浏览器和node.js环境中
  • 弱类型,数据类型可以被忽略的语言。一个变量可以赋不同数据类型的值

TypeScript

  • 静态类型,声明时确定类型,之后不允许修改
  • 编译运行,始终先编译成JavaScript再运行
  • 强类型,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了

👉TypeScript的优点

  • 开源,跨平台。它本身不需要考虑运行环境的问题,所有支持JavaScript的地方都可以使用typescript
  • 引入静态类型声明,减少不必要的类型判断和文档注释
  • 及早发现错误,静态类型检查或编译时发现问题,不用等到运行
  • 类、接口的使用更易于构建和维护组件
  • 编辑器内智能提示,对于一些用ts开发或者有types.d.ts类型包的第三方库有良好代码提示
  • 重构更方便可靠, 强大的接口类型可以充当使用文档