《21天精通TypeScript-2》-强类型与弱类型

专栏封面

类型

类型这个词在不同的用法,例如在数学领域,会有类型论。

在计算机科学中,我们通常讨论数据类型(Data type)类型系统(Type system

数据类型

在程序设计的类型系统中,数据类型(英语:Data type),又称资料型态、资料型别,是用来约束数据的解释。在编程语言中,常见的数据类型包括原始类型(如:整数、浮点数或字符)、多元组、记录单元、代数资料类型、抽象数据类型、参考类型、类以及函数类型。资料类型描述了数值的表示法、解释和结构,并以算法操作,或是对象在存储器中的存储区,或者其它存储设备。

如果你上过《数据结构》这门课程,数据类型又被称为:是一个值的集合和定义在这个值集上的一组操作的总称

熟悉一点编程知识的人都应知道“HelloWorld”是一个字符串类型, 1234是数字类型,true是布尔类型。

JavaScript中的数据类型

JavaScript 语言中类型集合由原始值对象组成。

类型系统

类型系统(英语:type system)用于定义如何将编程语言中的数值和表达式归类为许多不同的类型,如何操作这些类型,这些类型如何互相作用。类型可以确认一个值或者一组值具有特定的意义和目的(虽然某些类型,如抽象类型和函数类型,在程序运行中,可能不表示为值)。类型系统在各种语言之间有非常大的不同,也许,最主要的差异存在于编译时期的语法,以及运行时期的操作实现方式。

j简单来说:类型系统(英语:type system)用于定义如何将编程语言中的数值表达式归类为许多不同的**类型**,如何操作这些类型,这些类型如何互相作用。

类型检查

类型检查是类型系统中比较重要的概念。类型检查:可以在编译时期(静态检查)运行时期(动态检查),对数据的类型进行检查!

弱类型

像VB,PHP,JavaScripJS是弱类型语言,创建一个属性或者变量,即使分配了某种确定类型的值,我们仍然可以在运行时切换类型。

let userName='搞前端的半夏'

userName=123

强类型

像Java,Python,C++就是强类型语言,在变量定义的时候,就会指定变量的类型。

int userName='搞前端的半夏'

一旦变量的类型确定,如果不经过强制类型转换,那么它永远就是该数据类型。

TS是强类型的,一旦我们给创建的变量分配了一个 特定类型的值,TypeScript就会要求我们该变量的值保持类型不变。

对于上面的代码,我们用TS重写:

let userName:string='搞前端的半夏'
userName=123

在TS环境中会报错:

image-20220406232626995

同时大家会发现:

弱类型的语言在声明变量时,并不会明确的指定变量的类型

强类型的语言则必须指定变量的类型,正如在C语言中我们想要定义一个数字类型的变量,我们必须使用int或者float:

float f,x=3.6,y=5.2;
int i=4,a,b;

猜你喜欢

转载自blog.csdn.net/shangyanaf/article/details/124930353