本文摘自PHP中文网,作者coldplay.xixi,侵删。
TypeScript数据类型以及与JavaScript对比免费学习推荐:javascript视频教程
文章目录
- TypeScript数据类型以及与JavaScript对比
- 介绍
- 一、数据类型与基础数据类型
- 1.数据类型
- 2.基础数据类型
- 3.二者关系
- 4.实例
- 二、字面量与变量
- 1.字面量(Literals)
- 2.变量(Variable)
- 3.实例
- 4.模板字面量(template literals)
- 三、JavaScript的数据类型
- 四、TypeScript的数据类型
- 五、TypeScript与JavaScript数据类型对照比
- 总结
介绍
本文简单介绍了TypeScript的数据类型以及与JavaScript的数据类型,基础数据类型是什么?与数据类型的关系?列出了对照表比较TypeScript的数据类型以及JavaScript的数据类型。
提示:以下是本篇文章正文内容,下面案例可供参考
一、数据类型与基础数据类型
1.数据类型
数据类型其实是一种编程语言内置的数据结构,各种编程语言之间都有自己内置的数据结构,各有自己的特点。它们是用来构建其他数据结构。
2.基础数据类型
基本类型(基本数值、基本数据类型)是一种既非对象也无方法的数据(但是JavaScript有基本类型包装对象,是对象也有方法。例如,基础数据类型number的包装对象Number 是经过封装的能让你处理数字值的对象)。多数情况下,基本类型直接代表了最底层的语言实现。所有基本类型的值都是不可改变的。但需要注意的是,基本类型本身和一个赋值为基本类型的变量的区别。变量会被赋予一个新值,而原值不能像数组、对象以及函数那样被改变。
3.二者关系
它们之间关系就是,数据类型是基础数据类型的一个超集。
4.实例
JavaScript基础数据类型的值都是不可改变的,以下是实例:
1 |
|
二、字面量与变量
1.字面量(Literals)
字面量是由语法表达式定义的常量;或,通过由一定字词组成的语词表达式定义的常量。在JavaScript中,你可以使用各种字面量。这些字面量是脚本中按字面意思给出的固定的值,而不是变量。(译注:字面量是常量,其值是固定的,而且在程序脚本运行中不可更改。)
2.变量(Variable)
在应用程序中,使用变量来作为值的符号名。变量的名字又叫做标识符,其需要遵守一定的规则。一个 JavaScript 标识符必须以字母、下划线(_)或者美元符号($)开头;后续的字符也可以是数字(0-9)。因为 JavaScript 语言是区分大小写的,所以字母可以是从“A”到“Z”的大写字母和从“a”到“z”的小写字母
3.实例
JavaScript字面量赋值变量实例:
1 2 3 4 5 |
|
4.模板字面量(template literals)
在ES2015/ES6中,还提供了一种模板字面量(template literals),模板字符串提供了一些语法糖来帮你构造字符串。这与Perl、Python、Shell还有其他语言中的字符串插值(string interpolation)的特性非常相似。除此之外,你可以在通过模板字符串前添加一个tag来自定义模板字符串的解析过程,这可以用来防止注入攻击,或者用来建立基于字符串的高级数据抽象。
以下是例子:
1 2 |
|
三、JavaScript的数据类型
JavaScript 是一种弱类型或者说动态语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。这也意味着你可以使用同一个变量保存不同类型的数据:以下先介绍一下JavaScript的数据类型。
最新的 ECMAScript 标准定义了8种数据类型:
1.七种基本数据类型:
1.Boolean(布尔值):有2个值分别是(true 和 false).
2.null:一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、NULL或变体完全不同。
3.undefined:和 null 一样是一个特殊的关键字,undefined 表示变量未赋值时的属性。
4.Number(数字),整数或浮点数,例如:42 或者3.14159。
5.BigInt(任意精度的整数) ( 在 ES2020 中新添加的类型),可以安全地存储和操作大整数,甚至可以超过数字的安全整数限制。
6.String(字符串),字符串是一串表示文本值的字符序列,例如:“Howdy” 。
7.Symbol(在 ES6/ES2015 中新添加的类型).。一种实例是唯一且不可改变的数据类型。2.引用类型:
1.对象(Object)、数组(Array)、函数(Function),数组,函数是对象的一种
虽然这些数据类型相对来说比较少,但是通过他们你可以在程序中开发有用的功能。对象(Objects)和函数(functions)是这门语言的另外两个基本元素。你可以把对象当作存放值的一个命名容器,然后将函数当作你的程序能够执行的步骤。
四、TypeScript的数据类型
TypeScript几乎支持所有的JavaScript的数据类型,也有特定的数据类型比如枚举,Any,Void,Never等。也就是说TypeScript的数据类型是JavaScript的一个超集。TypeScript通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。
1.除了JavaScript七种基本数据类型,还有以下:
1.enum(枚举):是对JavaScript标准数据类型的一个补充像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。默认情况下,从0开始为元素编号。
例子:
1 |
|
2.any:有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。 这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用 any类型来标记这些变量。
例子:
1 |
|
在对现有代码进行改写的时候,any类型是十分有用的,它允许你在编译时可选择地包含或移除类型检查。 你可能认为 Object有相似的作用,就像它在其它语言中那样。 但是 Object类型的变量只是允许你给它赋任意值 - 但是却不能够在它上面调用任意的方法,即便它真的有这些方法:
例子:
1 |
|
3.void:某种程度上来说,void类型像是与any类型相反,它表示没有任何类型。 当一个函数没有返回值时,你通常会见到其返回值类型是 void
例子:
1 2 |
|
4.never:never类型表示的是那些永不存在的值的类型。 例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型; 变量也可能是 never类型,当它们被永不为真的类型保护所约束时。
never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 即使 any也不可以赋值给never。
例子:
1 2 3 4 5 |
|
5.Tuple:元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
例子:
1 |
|
五、TypeScript与JavaScript数据类型对照比
数据类型 | JavaScript | TypeScript | 是否基础类型 |
---|---|---|---|
null | ? | ? | ? |
bigint | ? | ? | ? |
string | ? | ? | ? |
symbol | ? | ? | ? |
boolean | ? | ? | ? |
number | ? | ? | ? |
undefined | ? | ? | ? |
Object | ? | ? | ? |
Array | ? | ? | ? (js不是) ? (ts是) |
tuple(元组[]) | ? | ? | ? |
enum | ? | ? | ? |
any | ? | ? | ? |
void | ? | ? | ? |
never | ? | ? | ? |
总结
以上举例介绍了JavaScript与TypeScript的数据类型,以及什么是基础数据类型;简单介绍了变量及字面量,ES6/ES2015新特性模板字面量;最后还有总结了JavaScript与TypeScript数据类型的对照表。
相关免费学习推荐:javascript(视频)
以上就是Typescript基础类型以及与Javascript对比讲解的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
js中如何使用padstart()和padend()格式化字符串?(小技巧)
更多相关阅读请进入《Typescript基础类型》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者