类型
类型这个词在不同的用法,例如在数学领域,会有类型论。
在计算机科学中,我们通常讨论数据类型(Data type)和类型系统(Type system
数据类型
在程序设计的类型系统中,数据类型(英语:Data type),又称资料型态、资料型别,是用来约束数据的解释。在编程语言中,常见的数据类型包括原始类型(如:整数、浮点数或字符)、多元组、记录单元、代数资料类型、抽象数据类型、参考类型、类以及函数类型。资料类型描述了数值的表示法、解释和结构,并以算法操作,或是对象在存储器中的存储区,或者其它存储设备。
如果你上过《数据结构》这门课程,数据类型又被称为:是一个值的集合和定义在这个值集上的一组操作的总称。
熟悉一点编程知识的人都应知道“HelloWorld”是一个字符串类型, 1234是数字类型,true是布尔类型。
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环境中会报错:
同时大家会发现:
弱类型的语言在声明变量时,并不会明确的指定变量的类型
强类型的语言则必须指定变量的类型,正如在C语言中我们想要定义一个数字类型的变量,我们必须使用int或者float:
float f,x=3.6,y=5.2;
int i=4,a,b;