JavaScript常见的循环和数据类型的转换

167 阅读4分钟

数据类型的转化

字符换转Number

  • 转整数:parseInt(数据)

     console.log(parseInt('123.6a'))         //123
    
  • 转小数:parseFloat(数据)

     console.log(parseFloat('123.6a'))       //123.6
    
  • 非字符串类型转number:

            console.log(Number(123.456))         //123.456
             console.log(Number(true))           //1
             console.log(Number(undefined))      //NAN
    

NAN的介绍

  • 介绍:它是number类型中一个特殊值
  • 原因:NAN不是数字,如果运算得不到一个数字,就会得到NAN
  • 场景:NAN表示错误的运算,产生的原因一般是代码出bug
  • 特点: 不能参加任何运算。结果一律是NAN

转换成String类

转换成Boolean类

隐式转换

undefined和null的区别

流程控制

语句表达式

if-else分支结构

  1. 顺序结构(默认):代码从上往下依次执行

  2. 分支结构:

     //语法
               if(条件 true/false){
                   满足条件需要执行的代码
                 }else{
                 不满足条件的时候需要执行的代码
                 }
             /*注意点: 小括号里面的条件可以写哪些代码呢?
               (1)比较表达式 : 比较表达式结果一定是布尔类型
               (2)直接写布尔类型的值
               (3)写其他的值 : 编译器会自动转成布尔类型来判断是否成立*/
    

    if和else的括号只会执行一个(不会同时执行)

  3. 多分支结构:

     语法
                 if(条件1){
                     条件1成立时需要执行的代码
                 }else if(条件2){
                     条件2成立时需要执行的代码
                 }else if(条件3){
                     条件2成立时需要执行的代码
                 }
                 .....
                 else{
                     如果前面所有条件都不满足,则执行else代码
                 }
    

    注意点:

    (1)多分支所有的大括号代码最多只会执行一个,只有当前面的条件不满足, 才会进入后面的条件判断

    (2)多分支一定要以if开头,后面else if可以多个,结尾else可以省略

三元表达式

  • 一元运算符: 只能算一个数 ++ --
  • 二元运算符: 可以算两个数 算数 关系
  • 三元运算符:可以算三个数 ?:
  1. 三元表达式: 表达式 ?代码1 : 代码2

    • 如果表达式成立,则执行代码1,否则执行代码2
    • 如果代码1和代码2 有运算结果,他们就是三元表达式的结果

示范:

         let num1 = prompt('请输入第一个数字')
         let num2 = prompt('请输入第二个数字')
         num1 > num2 ? alert(num1) :alert(num2)
  1. 如果三元表示式代码1和代码2没有结果,三元表达式结果就是undefined
  2. 如果三元表达式代码1和代码2有结果,三元表达式结果就是他们的值

switch-case分支结构(固定值匹配)

  • 语法:

         switch(匹配值){
             case1:
                 匹配值 === 值1, 需要执行的代码
                 break
             ......
             default:
                 如果case后面的所有值 和 匹配值 都无法匹配 , 则需要执行的代码
                 break
         }
    

    注意点

    1. 匹配值 和 case后面的值 一定要是全等的关系

    2.break关键字不要省略,如果省略break则会发生穿透现象,break关键字作用:结束switch-case语句,没有break则会穿透:代码会从上一个case无条件执行到下一个case

      //需求:让用户输入月份,告诉用户这是什么季节
         /* 
           春 : 3 4 5
           夏 : 6 7 8
           秋 : 9 10 11
           冬 : 12 1 2
           */
         let month = +prompt('请输入月份')
         switch (month) {
           case 3:
           case 4:
           case 5:
             alert('春季')
             break
           case 6:
           case 7:
           case 8:
             alert('夏季')
             break
           case 9:
           case 10:
           case 11:
             alert('秋季')
             break
           case 12:
           case 1:
           case 2:
             alert('冬季')
             break
         }
    

    流程控制-循环

    while循环

    1. 语法:

       while(条件 true/false){
           循环体:需要重复执行的代码
       }
      
    2. 执行规则:

      • 判断小括号条件是否成立
      • 如果为true,则执行循环体代码
      let num = 0 //循环变量
         while (num <= 2) { //循环条件
           console.log('干饭人');
           num++ //循环变量自增  
         }
         console.log('干饭完成')
    

    for循环

    1. 语法:

       for(声明循环变量 ; 判断语句2是否成立 ; 循环变量自增){
           //循环体 需要执行的代码
       }
      
    2. 执行规则:

      1. 执行声明变量

      2. 判断循环条件 是否成立

        • 成立:执行循环体,执行循环变量自增,重复步骤2
        • 不成立: 循环结束
    3. 案例

       <script>
               var str = '';
               for(var i = 1; i <= 9;i++){     //控制行数
                   for(var j=1;j<=i;j++){      //控制列数
                       str = str + i+ '*'+j+'='+i*j+' ';
                   }
                   str = str + '\n';
               }
               console.log(str);
           </script>
      

循环的关键字

break

  • 结束整个循环语句
  • 可以结束循环语句 + switch-case

continue

  • 只能用于循环语句
  • 结束本次循环体,立即进入下一次循环判断