小白学前端之TypeScript的逻辑判断

551 阅读2分钟

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战

条件判断语句

if 语句

这个和 Java 差不多,分为:

  • if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

    if ( flag ) {
        // 当 flag 为 true 时执行
    }
    
  • if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

    if ( flag ){
      // 当 flag 为 true 时执行
    }else {
      // 当 flag 为 false 时执行
    }
    
  • if...else if....else 语句- 使用该语句来选择多个代码块之一来执行

    if ( flag ){
      // 当 flag 为 true 时执行
    }else if ( flag2 ){
      // 当 flag2 为 false 时执行
    }else {
      // 当上面两个条件都为 false 时执行
    }
    

switch 语句

  • switch 语句 - 使用该语句来选择多个代码块之一来执行

    不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。

    switch(flag){
      case f1:
        // 当 flag=f1 时执行
        break;
      case f2:
        // 当 flag=f2 时执行
       	break;
      default:
        // 当 flag 在上面的 case 中没有匹配项时执行
           }
    

循环语句

for 循环

  • 经典 for 循环

    for ( init; condition; increment ){
        statement(s);
    }
    
    // 示例
    var i:number =0;
    for (i ; i<10; i++){
        console.log('你好!')
    }
    

    它分为三部分组成,init、condition、increment

    Init 会最先被执行,并且只执行一次

    然后判断 condition 语句是否为 true,是的话就执行循环,不是就结束循环,每次执行循环前都会判断 condition 语句

    执行完循环体内的代码后就会执行 increment 语句,这个可以为空,只要保留最后的分号即可

  • for...in 循环

    for...in 语句用于一组值的集合或列表进行迭代输出。

    // 列表输出
    var arr:number[] =[2,5,6,7]
    for (var index in arr){
      	// index 索引从0开始
        console.log(arr[index])
    }
    
  • for...of 循环

    for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。

    // 遍历 map
    var map = new Map([
        ['name','greycode'],
        ['desc','打工人']
    ]);
    for (var key of map.keys()){
        console.log(map.get(key))
    }
    
    // 遍历数组
    var arr:number[] =[2,5,6,7]
    for (var value of arr){
        console.log(value)
    }
    
    // 遍历字符串
    var n:string = 'greycode'
    for (var c of n){
        console.log(c)
    }
    
  • forEach 循环

    不支持循环体内跳出循环

    var arr:number[] =[2,5,6,7]
    arr.forEach((val,index,array)=>{
        console.log(val)
        console.log(index)
        console.log(array)
        }
    )
    

    上面的三个参数 val,index,array 代表着 值、数组索引值、数组本身,你可以你可以省略 index 和 array 参数从而单独查询值,比如:

    var arr:number[] =[2,5,6,7]
    arr.forEach((val)=>{
        console.log(val)
        }
    )
    
  • every 循环

    支持循环体内跳出循环,并切必须设置返回布尔值

     var arr:number[] =[2,5,6,7]
     arr.every((val)=>{
         console.log(val)
       	// 返回 true 时继续执行循环,相当于 continue
       	// 返回 false 时结束循环,相当于 break
       	// 不返回布尔值时结束循环
         return true
         }
     )
    
  • some 循环

    支持循环体内跳出循环,但是和 every 不同,布尔返回值时可选的,布尔值的含义和 every 循环相反

    • 返回 true 相当于 break,会结束循环
    • 返回 false 相当于 continue,会进入下一次循环
    var arr:number[] =[2,5,6,7]
    arr.some((val)=>{
        console.log(val)
        }
    )
    

while 循环

基本语法如下:

while(flag)
{
   // 当 flag 为 true 时执行
}

do...while 循环

和 while 不同的是它是在尾部判断循环条件,所以会先执行 do 代码块

do
{
   // 执行代码块
}while( flag );

// 当 flag 为 true 时会再次执行 do 的代码块

无限循环

// for 无限循环写法
for(;;) { 
   // 语句
}

// while 无限循环写法
while(true) { 
   // 语句
}