前言
距离上篇博客已有两年了,对TS也有了一定的认识,于是计划继续更新系列文章
基本数据类型
在JS中,基本数据类型有:Boolan(布尔),Number(数字),String(字符串),Null(空值),Undefined(未定义),Symbol(标识符,ES6新增),Bigint(任意位整数,精度在53位以内,ES10新增)。
而在TS中,除了上面的类型外,基本类型还有Void(缺少值)通常表示函数无返回值,any(任意值)
变量定义
在JavaScript中,我们通常使用var定义变量,在es6中新增了let和const的声明变量的支持,用法和var一样,通过var 变量名或var 变量名=赋值来定义新的变量。
而在TypeScript中,我们同样可以使用以上方法定义新的变量
let _boolean = false
var _string = 'hello'
const _num = 1024
但是由于TS是强类型语言,所以我们声明变量时需要对变量类型做一个类型的定义,否则就和写JS一样了
变量关键字 变量名:变量类型=变量值
let _boolean: boolean = false
var _string: string = 'hello'
const _num: number = 1024
用法
Boolan(布尔)
布尔值,只能是true
或false
。
const bool: boolean = false // 基本用法
const bool1: boolean = Boolean() // 函数传undefined默认false
const bool2: boolean = Boolean(true) // 函数
const bool3: boolean = new Boolean(false).valueOf();// 构造函数
Number(数字)
数字,包括整数和浮点数
const num: number = 10// 默认十进制
const num1: number = 0b01011// 二进制
const num2: number = 0o14567// 八进制
const num3: number = 0xffaec// 十六进制
const num4: number = NaN// 非数字
const num5: number = Infinity// 无穷
const num6: number = 1.5// 小数
const num7: number = 19e3// 科学计数法
String(字符串)
字符串,可以使用单引号、双引号或反引号 ` ` 表示
const str: string = "zhangsan"// 字符串
const str1: string = '张三' // 中文
const str2: string = `I am ${str}` // 字符串模板
Null(空值)和Undefined(未定义)
null通常表示一个变量的值是空或不存在,而undefined表示一个变量未被赋值或未定义
let val: null = null // val只能等于null
let val1: undefined = undefined // val1只能等于undefined
val = 1 // 抛错,无法赋值
val1 = 2 // 抛错,无法赋值
null和undefined是所有类型的子集,也就是变量初始状态都可以写成null和undefined
let val:number= null
val = 1
Symbol(标识符)
唯一的值,常用于对象属性的键
const sym: symbol = Symbol("abc")
const sym1: symbol = Symbol(123)
Bigint(长整数)
表示大于2^53-1的整数
const big: bigint = 12345n
const big1: bigint = BigInt(111)
Void(缺少值)
void通常用来表示函数没有返回值,当然也可以使用null和undefined赋值(在严格模式下,null不能赋值给void类型)
tips:void 0可以看作undefined,一般可以使用val===void 0 判断值是否是undefined(因为在IE8中undefined可以被修改为其他值,使用void 0可以保证获得的是一个undefined值)
const vo: void = null // 严格模式下会报错
const vo1: void = undefined
const fn = (): void => {
const str: string = 'hello'
console.log(str)
return void 0 // 不写这句默认会给提示:"fn" doesn't return anything
}
const vo2: void = fn()
any(任意值)
any用来表示可以赋予任意类型的值。任何类型都可以赋值给 any 类型的变量
在ts中声明了一个类型的变量无法赋值另一种类型的值,如:
let val: number = 0
val = "a"// 报错:不能将类型“string”分配给类型“number”
但是如果加上any类型,就可以像js一样进行不同类型数据赋值
let val: any = 0
val = "a"
val = false
相关文章
TypeScript 入门教程
TypeScript: Documentation - 基础