• 2022/04/10 TypeScript_Study_Day3


    # 2022/04/10 TypeScript_Study_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)
    `

    **注意:**

    1. 当`S`类型是`T`类型的子集,或者`T`类型是`S`类型的子集时,`S`能被成功断言成`T`
    2. 这不是类型转换

    #### 类型推断

    **示例:**

    `
    var num = 2
    `

    编译器自动类型推断为`number`类型变量

    #### 变量作用域

    - 全局变量 --->在类之外
    - 实例变量 --->在类之内,方法之外
    - 静态变量 --->`static`修饰,在类之内,方法之外
    - 局部变量 --->在方法内

    **举例:**

    `
    // global variable
    var global_num:number = 18

    class Numbers{
    // Instance variable
    num_val:number = 15
    // Static variable
    static sval:number = 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`为指定运算符 --->判断对象是否为指定的类型

  • 相关阅读:
    自学Zabbix8.1 Regular expressions 正则表达式
    自学Zabbix7.1 IT services
    自学Zabbix6.1 Event acknowledgment 事件确认
    自学Zabbix5.1 zabbix maintenance维护周期
    自学Zabbix4.3 zabbix实战监控Web网站性能
    自学Zabbix4.2.1 Application介绍
    自学Zabbix4.2 web监控项创建+item详解
    自学Zabbix4.1 zabbix监控web服务器访问性能
    自学Zabbix3.11-宏Macros
    自学Zabbix3.10.2-事件通知Notifications upon events-Actions报警配置
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/16573272.html
Copyright © 2020-2023  润新知