美文网首页TypeScript基础我爱编程
7、TypeScript表达式与循环

7、TypeScript表达式与循环

作者: 伯纳乌的追风少年 | 来源:发表于2017-08-18 17:05 被阅读48次

    一、箭头表达式

    用来声明匿名函数,消除传统匿名函数的this指针问题

    //写法示例
    var sum = (arg1, arg2) => arg1 + arg2
    
    //无参数的箭头表达式
    var sum1 = () => {}
    
    //只有一个参数的箭头表达式
    var sum2 = arg1 => {
        console.log(arg1)
    }
    

    应用场景:

    var myArray = [1, 2, 3, 4, 5]
    //过滤掉单数
    console.log(myArray.filter(value=>value%2==0))
    
    解决传统函数中this指向的问题:

    传统函数:

    function getStock(name: string) {
        this.name = name;
        setInterval(function () {//传统函数
            console.log(this.name)
        },1000)
    }
    var stock = new getStock("IBM");
    

    执行结果:

    传统函数执行结果


    箭头函数
    function getStock2(name: string) {
        this.name = name;
        setInterval(()=> {//箭头函数
            console.log(this.name)
        },1000)
    }
    var stock2 = new getStock2("IBM");
    

    执行结果:

    箭头函数执行结果



    二、forEach(),for in 和 for of

    1、forEach
    不可打破循环,break关键字在forEach中不支持;
    会忽略掉属性值;

    var myArr = [1, 2, 3, 4]
    myArr.desc = "four number"
    myArr.forEach(value=>console.log(value))
    

    执行结果:desc属性被忽略了




    2、for in
    循环获取到的是数组的下标或数组的属性名称;
    循环过程可以被break掉;
    不会忽略掉属性;
    var myArr = [1, 2, 3, 4]
    myArr.desc = "four number"
    
    for (var n in myArr) {
        console.log(n);
    }
    

    如果想打印数组的值得话,可以用这种方式:

    var myArr = [1, 2, 3, 4]
    myArr.desc = "four number"
    
    for (var n in myArr) {
        console.log(myArr[n]);
    }
    


    3、for of
    循环获取到的是属性值而不是下标;
    循环过程可以被break掉;
    忽略掉属性;

    var myArr = [1, 2, 3, 4]
    myArr.desc = "four number"
    
    for (var n of myArr) {
        if (n > 2) break;
         console.log(n);
    }
    

    for of循环可以用在对象、集合(map、set)、字符串上

    for (var n of "four number") {
         console.log(n);
    }
    

    相关文章

      网友评论

        本文标题:7、TypeScript表达式与循环

        本文链接:https://www.haomeiwen.com/subject/fouarxtx.html