前言:
现时同学们对“js 单引号”大约比较珍视,我们都想要学习一些“js 单引号”的相关知识。那么小编也在网摘上汇集了一些有关“js 单引号””的相关内容,希望我们能喜欢,姐妹们一起来了解一下吧!ECMA简单来说是评估、开发和认可计算机标准的一个组织。我们熟知的Javascript就是由他来制定标准的。经过从1997年ECMAScript 1后到今天我们要介绍的ECMAScript 6经历近20年。ES6 是在2015年6月发布的,此后由于标准委员会最终决定,标准在每年的 6 月份正式发布一次,作为当年的正式版本,所以ES6也叫做ES2015。
ES6扩充了之前发布的ES5语法并使得 JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。ES6 增添了许多必要的特性,例如:模块和类、Maps、Sets、Promises、生成器(Generators)以及一些实用特性等。
因为现在市场上流行的浏览器很多对ES6还没有完全支持。所以使用ES6编写的javascript也需要使用工具在转成ES5的语法,比如使用Babel转码器。
那TypeScript和ES6有什么区别呢?
TypeScript是由微软开发的自由和开源的编程语言。Google的Angular 2框架就是用TypeScript开发的,两个公司对此有着诸多交流。背靠着两大科技界扛把子,让我们来一睹TypeScript的风采。
首先TypeScript是ES6的超集。除了包含所有ES6语法外,他自身也有很多特性。
基于静态类型,用 TypeScript 编辑代码有更高的预测性,更易纠错。
由于模块,命名空间和强大的面向对象编程支持,使构建大型复杂应用程序的代码库更加容易。
TypeScript在编译为JavaScript的过程中,在它到达运行时间前可以捕获所有类型的错误,并中断它们的执行。
首先需要安装TypeScript,可以通过npm来安装。npm install -g typescript
安装后就可以使用命令来编译用TypeScript编写的.ts文件成为.js文件,这样让编写的文件在浏览器上运行。编译的过程可以通过配置来选择使用ES5或者ES6的语法来编译,这点还是很方便强大的。
支持 TypeScript 的文本编辑器
此外随着TypeScript的日益流行,现在也出现了更多本身支持或者通过插件支持 TypeScript 语法、智能提示、纠错、甚至是内置编译器的文本编辑器和IDE。
Visual Studio Code– 微软另外一个轻量级的开源代码编辑器。内置支持TypeScript。
Sublime Text的官方免费插件。
WebStorm的最新版本带有内置支持。
其他包括Vim,Atom,Emacs等。
静态类型
TypeScript 一个很独特的特征是支持静态类型。意思就是可以声明变量的类型,(因此)编译器就可以确保赋值时不会产生类型错误。如果省略了类型声明,TypeScript 将会从代码中自动推测出正确的类型。
这有个例子。任意变量,函数自变量或者返回值在初始化时都可以定义自己的类型
因为 JavaScript 是弱类型语言(即不声明变量类型),因此 TypeScript 编译为 JavaScript 时,(变量类型的声明)全部被移除:
然而,如果我们试着输入非法的语句,tsc 会警告代码里有错误。例如:
以下是一些最常用的数据类型:
Number (数值类型) – 所有数字都是数值类型的,无论是整数、浮点型或者其他数值类型都相同。
String(字符串类型) – 文本类型,就如 vanilla JS 字符串一样可以使用单引号或者双引号。
Boolean(布尔类型) – true 或者 false,用 0 和 1 会造成编译错误。
Any(任意类型) – 该类型的变量可以设定为字符串类型,数值类型或者任何其他类型。
Arrays(数组类型) – 有两种语法:my_arr: number[];或者my_arr: Array<number>
Void (空类型)- 用在不返回任何值的函数中。
Interfaces 接口
接口通常会根据一个对象是否符合某种特定结构来进行类型检查。通过定义一个接口我们可以命名一个特殊的组合变量,确保它们会一直一起运行。当转译成 JavaScript 时,接口会消失 – 它们唯一的目的是在开发阶段里起到辅助的作用。在下面的例子中我们定义了一个简单的接口来对一个函数自变量进行类型检查:
属性的顺序并不重要。我们只需必要的属性存在并且是正确的类型。如果哪里有遗漏,类型错误,或者命名不同的话,编译器都会报警告信息。
类
在搭建大型规模的应用程序时,尤其是在 Java 或 C# 当中,许多开发者会优先选择面向对象编程。TypeScript 提供一个类系统,和 Java、C# 中的非常相似,包括了继承,抽象类,接口实现,setters/getters 方法等。
值得一提的是由于最新的 JavaScript 更新(ECMAScript 2015),这些类对于 vanilla JS 来说是原生的,并且在没有 TypeScript 的情况下也可以使用。这两种实现方式非常相似但是也有不同的地方,TypeScript 更加严格一些。
继续上面的 food的 例子,这里有一个简单的TypeScript类:
只要写过一点 Java 或者 C# ,就会发现TypeScript和它们在语法上非常相似。继承也是一样:
泛型
泛型(Generics)是允许同一个函数接受不同类型参数的一种模板。相比于使用 any 类型,使用泛型来创建可复用的组件要更好,因为泛型会保留参数类型。
一段简单的脚本例子,传入一个参数,返回一个包含了同样参数的数组。
第一次调用函数的时候,我们将类型手动设置成字符串。第二次及以后再次调用的时候就不必这样做了,因为编译器会判断传递过什么参数并且自动决定哪种类型最适合。虽然不是强制性的,但是由于编译器在众多复杂环境中确定正确类型的时候可能会失败,所以每次都传入类型是好的做法。
TypeScript 本身是开源的,同时其架构设计的也很优秀,提供了大量的API来供开发人员来扩展其功能,目前仍在积极开发和持续演变中。
随着各大厂商对ES6标准的不断支持,TypeScript 和 JavaScript 都会有属于他们自己的舞台,让前端技术能够适应越来越复杂的应用成为可能。
如果你有什么疑问或者问题,请关注我并给我私信,我将在第一时间给予回复!
标签: #js 单引号