TypeScript+Vue.js前端开发从入门到精通
上QQ阅读APP看书,第一时间看更新

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 }';