JavaScript
特点:
1. JavaScript是解释性脚本语言,不需要编译,可以直接在浏览器中解释执行
2. 是基于对象的语言,可以创建对象并使用现有对象
3. 是弱类型、动态语言,基于对象和事件驱动
4. 较安全,跨平台,仅在浏览器端执行,不会访问本地硬盘数据
优点:
1. 发展较早,使用人数多
2. 无需编译,可以直接执行
3. 没有类的概念,开发更为灵活
TypeScript
ts是面向对象的编程语言,是JavaScript的超集,包含JavaScript所有元素,可以载入Js运行,扩展了Js的语法。TypeScript支持on-the-fly编译,即写一句ts就立即得到对应的js,不需要完整的语句写完,就可以根据上下文推导生成对应的、不完整的js代码。编译的目标代码是Es6,若有es6新特性问题时会向下兼容es5,但对于各个浏览器自行对js做的扩充,ts不保证予以支持。
特点:
1. 属于开源语言,使用Apache授权协议
2. 增加了静态类型、类、模块、接口和类型注解
3. 所有的ts声明(*.d.ts)都不会声称对应的js,因为js对象模型中的声明是可选的。
优点:
1.静态输入,可以在开发时就发现错误,使得提高代码质量
2. 大型项目开发、多人开发时,更为安全、容易、更好协作,降低乱码和错误的机会
3. 代码编译器创建优化的JavaScript,在解释执行时,鉴于浏览器的运行原理,可以减少无类型变量解释时间
4. 函数缺省参数值:可选(xxx?: yyy)和默认参数(没有参数传入是,使用默认值xxx = yyy)
JavaScript和TypeScript的主要差异
1. JavaScript可以与TypeScript共同使用,TypeScript可以使用编译器转换成JavaScript
2. TypeScript在扩展了JavaScript的类概念及核心语言方面,如TypeScript可以使用类型和接口等概念既描述正在使用的数据,又能快速检测错误
3. TypeScript通过类型注解提供编译时的静态类型检查
4. TypeScript引入模块module的概念,可以把声明、数据、函数和类封装在模块中
5. TypeScript需要被编译成JavaScript,才能在浏览器执行
6. TypeScript编译时支持有限的函数重载(overload),js不支持重载
ps:求监督,求审查~~