2.2.1 布尔、数值与字符串
在软件设计中,布尔类型是非常重要的,大多逻辑语句的判断部分都是通过布尔值来实现的。在TypeScript中,布尔类型叫作boolean,其值只有true和false两种。
要指定一个变量的类型为布尔类型,直接在变量名后加冒号,冒号后面加boolean即可,示例如下。
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
//定义一个布尔类型的变量,并将其赋值为true var isSuccess: boolean = true;
需要注意,JavaScript中提供了一个名为Boolean的函数,例如下面的代码返回的值将不是boolean类型。
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
//使用Boolean构造方法来创建一个包装布尔值的对象 var isComplete = new Boolean(1);
使用构造方法的方式调用Boolean函数将返回一个对象,对象中会包装一个布尔值,因此isComplete变量本质上是对象类型,不能将其声明为boolean类型,可以通过调用此对象的valueOf方法来获取内部包装的布尔值,示例如下。
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
console.log(typeof isComplete); console.log(typeof isComplete.valueOf(), isComplete.valueOf());
运行代码,控制台将输出如下:
object boolean true
如果不使用构造方法,直接调用Boolean函数,则其返回的依然是boolean类型的数据,示例如下:
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
//调用Boolean函数(非构造方法)来创建boolean类型的数据 var isPass: boolean = Boolean(0);
提示与Boolean方法类似,JavaScript中也提供了String、Number等类型的构造方法,使用构造方法创建出来的都是对象类型,其本质是对基础类型数据进行包装,这在编写TypeScript代码时要额外注意。后面就不再赘述了。
在JavaScript中,所有数值都只有一种类型,即number。TypeScript中支持使用多种方式来定义数值。示例如下。
【代码片段2-4 源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
其中Infinity和NaN是两个特殊的数值,Infinity用来表示无穷的概念,NaN用来描述非数字,例如要编写一个将字符串转换成数值的函数,如果调用方传入的字符串不能转换,就可以返回一个NaN值。
下面介绍本节的最后一块内容——字符串。字符串的类型为string,和JavaScript类似,在定义时可以使用双引号,也可以使用单引号,示例如下:
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
var str1: string = 'Hello'; var str2: string = "World";
TypeScript中也支持使用模板字符串,即字符串插值,这极大地方便了开发者所需处理的字符串拼接工作,示例如下:
【源码见附件代码/第2章/3.Boolean-Number-String/3.boolean-number-string.ts】
//结果为:str1 is Hello, str2 is World var str3: string = 'str1 is ${ str1 }, str2 is ${ str2 }';
在使用模板字符串时,也支持换行操作,下面的写法也是合法的:
//结果为 //str1 is Hello //str2 is World var str3: string = 'str1 is ${ str1 } str2 is ${ str2 }';