2022/04/10 TypeScript_Day3
TypeScript变量声明
本质:
申请一块内存地址存储值
变量命名规则
- 变量名称可以包含数字和字母
- 除
_
和$
符号外,不能包含其他特殊字符,包括空格 - 变量名不能以数字开头
变量的几种声明方式
声明时赋值
var message:string = "HelloWorld"
声明变量不赋值--->值会被设置为undefined
var message:string
声明变量并赋值不设置类型--->类型会被设置为Any
var message = "HelloWorld"
单纯声明变量--->类型会被设置为Any
,初始值设置为undefined
var message
类型断言(Type Assertion)
作用:
手动指定一个值的类型,允许变量从一种类型变更为另一种类型
这里的变量更改类型是指编译器认为该变量变成了另一种类型
示例代码:
var str = "1" var str1:number = <number><any>str console.log(str1)
注意:
- 当
S
类型是T
类型的子集,或者T
类型是S
类型的子集时,S
能被成功断言成T
- 这不是类型转换
类型推断
示例:
var num = 2
编译器自动类型推断为number
类型变量
变量作用域
- 全局变量 --->在类之外
- 实例变量 --->在类之内,方法之外
- 静态变量 --->
static
修饰,在类之内,方法之外 - 局部变量 --->在方法内
举例:
` // global variable var global_num:number = 18
class Numbers{ // Instance variable num_valnumber = 15 // Static variable static svalnumber = 12
sort(num:number[]):number[] {
if(num.length < 0) {
return
}
// Local variable
var init:number = 0
var i:number
var j:number
for(i = init; i < num.length; i++) {
for(j = i+1; j < num.length; j++) {
if(num[i] > num[j]) {
var temp = num[i]
num[i] = num[j]
num[j] = temp
}
}
}
return num
}
}
var ay:number[] ay = [3,5,9,1,2] var obj = new Numbers console.log(obj.sort(ay)) `
TypeScript运算符
和java
或者go
的运算符没什么两样,所以注意一些记忆模糊的即可
位运算符
- &:and --->位运算符,将两个十进制数转为二进制比较两个二进制数的每一位,只有两个数的二进制位都为1结果才为1否则为0(转为二进制数以后长度要等长)
- !:or --->位运算符,将两个十进制数转为二进制比较两个二进制数的每一位,两个数的二进制位有一个为1结果就为1(转为二进制数以后长度要等长)
- ~:取反 --->将一个十进制数转为二进制,然后对每一位取反,0变为1,1变为0
- ^:异或 --->将两个十进制数转为二进制,等长,对每一位执行逻辑异,按位或操作,操作的结果是如果某位不同则该位为1,否则为0
<<
左移 --->符号左边的数转为二进制,右边的数决定移动多少位,如5<<1是0101各个位向左移1位,高位丢弃,低位补0>>
:右移 --->与左移一直,只是改变了移动方向>>>
:无符号右移 --->与有符号右移类似,除了左边一律使用0补位
类型运算符
返回操作数的类型
示例代码:
var message:string = "HelloWorld" console.log(typeof message)
instanceof
为指定运算符 --->判断对象是否为指定的类型