• TypeScript学习笔记(二):基本数据类型及数据转换


    数据类型

    我们来看看TypeScript中的基本数据类型都有哪些。

    boolean

    布尔值,支持true和false。

    var isDone: boolean = false;

    默认为undefined,此时其和true与false判断都为false。

    1 var isDone: boolean;
    2 
    3 function run() {
    4     alert(isDone == true);//false
    5     alert(isDone == false);//false
    6 }
    7 
    8 run();

    所以在使用boolean类型时要记得赋初值,以便避免以后的麻烦。

    number

    数字类型,如下:

    var height: number = 6;

    首先,TypeScript中对于数字只有这么一种类型,没有byte、short、int、uint、long、float、double等类型,而TypeScript的number实际上是一个64为的双精度浮点数,可以看做其它语言中的double类型。

    需要注意的是,当不进行初始赋值时,所有的基本数据类型都默认为undefined类型,下面不再重复讲解。

    string

    字符串类型,如下:

    var name: string = "bob";
    name = 'smith';

    字符串的使用与JavaScript一致。

    any

    表示为任意类型,如下:

    var notSure: any = 4;
    notSure = "maybe a string instead";
    notSure = false;

    我们发现notSure可以设定为任意的类型。

    我们也可以将其用在数组上,如下:

    var list:any[] = [1, true, "free"];
    list[1] = 100;

    undefined和null

    null和undefined基本是同义的,只有一些细微的差别。

    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。

    null表示"没有对象",即该处不应该有值。

    参考:http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html

    void

    用在函数返回值,和C++、Java用法一致,表示没有返回值:

    function warnUser(): void {
        alert("This is my warning message");
    }

    Array

    数组类型,可以有两种写法,如下:

    var list:number[] = [1, 2, 3];
    var list:Array<number> = [1, 2, 3];

    二维数组

    var num: string[][] = [["asdf", "zxc"],["adsf"]];

    其它使用方法和JavaScript中一致。

    Object

    可以当做Hash表来使用,如下:

     1 var obj: Object = {};
     2 
     3 function run() {
     4     obj["a"] = 123;
     5     //obj.b = "asdf";//这种写法是错误的
     6     obj["b"] = "asdf";
     7     obj[100] = true;
     8 
     9     delete obj["100"];//删除使用 delete 关键字
    10 
    11     for (var key in obj) {
    12         alert(key);
    13         alert(obj[key]);
    14     }
    15 }
    16 
    17 run();

    需要注意的是,该类型的键都是字符串类型,即所有当做键的对象都会调用toString()方法获得对应的字符串来作为键值保存对象。

    Enum

    枚举类型,如下:

    enum Color {Red, Green, Blue};
    var c: Color = Color.Green;

    另一种格式:

    enum Color {Red, Green, Blue};
    var c: Color = Color[1];

    同时还可以对每个枚举进行赋值,如下:

    enum Color {Red = 1, Green, Blue};
    var c: Color = Color.Green;

    这样,Green自动被赋值为2,Blue自动被赋值为3。

    也可以全部进行赋值:

    enum Color {Red = 1, Green = 2, Blue = 4};
    var c: Color = Color.Green;

    我们还可以获得指定索引的枚举的名称:

    enum Color {Red = 1, Green, Blue};
    var colorName: string = Color[2];
    alert(colorName);

    需要注意的是,这里的值可以看做数组的下标,如下:

    enum Color {Red = 100, Green, Blue};
    var colorName: string = Color[101];
    alert(colorName);//Green

    数据转换

    强制转换

    将一个类型强制转换为另一个类型,如果转换失败编译时会报错,如下:

    var str: string = <string> num;//转换成功
    var strNum: number = <number> str;//编译报错

    TypeScript中没有as关键字进行转换,都是强制转换。

    instanceof

    instanceof可以用来判断一个对象是否为指定的类型,如果是则返回true,否则返回false,如下:

    if (obj instanceof String) {
        alert("obj is string!");
    }

    typeof

    可以获取类型的字符串描述:

    1 typeof 3 // "number"
    2 typeof "abc" // "string"
    3 typeof {} // "object"
    4 typeof true // "boolean"
    5 typeof undefined // "undefined"
    6 typeof function(){} // "function"

    可参考:http://tobyho.com/2011/01/28/checking-types-in-javascript/

  • 相关阅读:
    自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本
    自定义适用于手机和平板电脑的 Dynamics 365(三):显示的实体
    自定义适用于手机和平板电脑的 Dynamics 365(二):窗体自定义项
    自定义适用于手机和平板电脑的 Dynamics 365(一):主页
    使用IEDA远程调试
    Apache Roller 5.0.3 XXE漏洞分析
    fastjson 反序列化漏洞笔记,比较乱
    JAVA常见安全问题复现
    Spring Integration Zip不安全解压(CVE-2018-1261)漏洞复现
    php一句话反弹bash shell
  • 原文地址:https://www.cnblogs.com/hammerc/p/4908950.html
Copyright © 2020-2023  润新知