2.typescript学习之基础数据类型

1.强类型和弱类型

学习之前我们先来认识一下强类型和弱类型

强类型:定义变量同时还需要定义变量类型,比如:Java、c++、当然还有typescript;

弱类型 :定义变量时,变量类型可以忽略,一个变量允许被赋予不同类型的值,比如:javascript、php、vb;


弱类语言的优缺点:

优点: 开发者可以将注意力集中在业务处理和逻辑开发上

缺点:
①变量类型检测不足,当你的项目比较庞大时,肯定会出现数据类型不正确导致的问题;
②弱类语言的内存利用率是低于强类型语言的,因为弱类型语言在运行中需要对变量进行隐式转换(比如你将某个类型的值赋给一个变量,该变量需要一系列复杂处理才会接纳你的值,然后安排到合适的位置),在分配内存时,也会考虑多分配一些,而强类型语言则不同,因为人家提前将类型定义好了,内存也是量身定做,所以在内存利用率上明显高于弱类型语言

2.typescript变量声明

javascript声明变量的方式有三种:var、let、const,在这里我推荐大家使用let来代替var,
let不存在变量提升问题,let不存在循环体中i变量等常见问题


typescript的变量在使用前需要先声明

  • 声明的同时并初始化
let [变量名]:[类型] =// 比如
let userName:string = 'zhouyajing'
  • 如果声明了变量的类型但没有给予初始值,变量默认值为undefined
let [变量名]:[类型];
// 比如
let userName:string;
console.log(userName) // undefined
3.typescript的基本类型
  • 布尔类型(boolean)
  • 数字类型(number)
  • 字符串类型(string)
  • 数组类型(array)
  • 元组类型(tuple)
  • 枚举类型(enum)
  • 任意值类型(any)
  • | 联合类型
  • null与undefined
  • void类型
  • never类型

布尔类型(boolean)

  • boolean用于直接的逻辑处理,它只有两种值:true,false
let isShow:boolean = true
console.log(isShow) // true
  • 需要注意,ts是强类型语言,初始值必须为指定的类型,否则会报错
let isShow:boolean = '对' // Error
  • 当然,更不允许修改为其他类型,以下会提示错误:
let isShow:boolean = true
isShow = 23 // 报错

数字类型 (number)

和javascript一样,ts中所有数字都是number类型,不区分整数和小数

let age:number = 12
let price:number = 11.223
console.log(age, price) // 12    11.223

字符串类型(string)
和javascript一样,可以使用双引号或者单引号表示字符串

let str:string = '哈哈哈'
str = '嘿嘿'
  • 当然你也可以使用es6的字符串模板
let name:string = 'zhouyajing'
let age:string = "18"
let info:string = `姓名${name},年龄${age}` // 姓名zhouyajing年龄18

数组类型(array)

在类型后面接上[], 表示数组

let arr: number[] = [1, 2, 3]
  • 以上示例制定了数组元素的类型必须为number类型,如果指定其他类型,会提示错误
let arr:number[] = [1, 2, 3, 'zhou'] // 报错

另外还有一种定义数组的方法叫泛型数组,我们后续再学习


元组类型(tuple)

元组类型在javascript中不存在的,但是在其他语言,比如说:python、c#中。

  • 元组类型可以用于表示元素类型不同的数组,但前提是你要知道元素的数量与类型,如下:我定义了第一个元素为string类型,第二个元素为number类型的元组
let arr:[string, number] = ['aaaa', 111]
  • 注意相对应值的类型一定要相同,否则会有错误提示
let arr: [string, number] = [111, 222] // 会报错,第一个参数应该为string类型

任意值类型(any)

any类型表示任意类型,当你的数据类型不确定时就可以使用它

let arr:any[] = [1, true, 'aaa', {a: 1}]
let str:any = 'aaa'
str = true // 没问题的

联合类型( | )

let day: number | string
day = '1111' //正确
day = 2222 // 正确
let a: string | number | boolean
a = '111' // 正确
a = 222 // 正确
a = true // 正确

null 和 undefined

null和undefined类型定义自身的这种行为本来就没什么意义

let nu:null = null
let nu2:undefined = undefined
  • 你可以将null和undefined赋值给任意类型的变量,比如string类型
let str:string = undefined

void类型

void类型和any类型相反,它表示没有任何类型。声明一个void类型的变量是没有意义的,因为它的值只能是null和undefined

let a:void = undefined
let b:void = null
  • void类型主要用于当函数没有返回值时,将返回的类型定义为void类型,以下代码表示fn函数没有返回值
function fn():void {
	console.log('我是函数哈哈')
}

枚举类型(enum) 和 never类型
我们后续再学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值