首页 > 编程语言 >【Javascript Day3】转换、比较及分支结构,if、switch语句

【Javascript Day3】转换、比较及分支结构,if、switch语句

时间:2025-01-08 20:32:00浏览次数:22  
标签:false log Javascript Day3 else switch var console true

目录

数据类型转化(续Day 2)

转Boolean类型

自动转换和比较运算符

分支结构

分支嵌套

if 分支 : 自定义判断条件的

 switch case 分支 :自定义判断用于恒等于条件


数据类型转化(续Day 2)


转Boolean类型


        // 1. 自动转换
       
        // 在非boolean类型数据的运算中,&& 和 || 具有短路符的特性
        //    => 短路符:以&&为例 => 当左侧表达式为false,整个&&运算结果必然是false
        //              以||为例 => 当左侧表达式为true,整个||运算结果必然是true
        
        //    => 短路符:&& || 运算时如果使用的是非boolean变量,运算结果会直接返回造成最终结果的变量
        var flag1 = false && 100;
        var flag2 = true && 100;
        console.log( flag1 );
        console.log( flag2 );


        var str1 = "abc";  
        // var str1 = "";  // "" 空字符串转换结果为 false
        var num1 = 100;
        // 非boolean类型变量,遇到逻辑运算时,程序计算过程中会进行类型转换
        var flag = str1 && num1;
        console.log(flag) 

        var str2 = "abc";
        var num2 = 100; // 0 转换的结果为 false
        var flag3 = num2 && str2;
        console.log(flag3);

        // 转换规则
        //      1. "" 空字符串转换结果为 false
        //      2. 0 转换的结果为 false
        //      3. null 转换的结果为 false
        //      4. undefined 转换的结果为 false

        // 2. 强制转换
        var flag4 = Boolean( "aaa" );
        console.log(flag4)

        var flag5 = Boolean( "" );
        console.log(flag5)

        var flag6 = Boolean( 100 );
        console.log(flag6)

        var flag7 = Boolean( 0 );
        console.log(flag7)

        var flag8 = Boolean( null );
        console.log(flag8)

        var flag9 = Boolean( undefined );
        console.log(flag9)

自动转换和比较运算符

// == < > <= >= != 只与值相关的比较运算符的转换规则
        //   1. 比较符 左右 两侧数据是同类型数据,直接比较不转换
        //   2. 比较符 左右 两侧数据类型不同,一定会触发数据类型转换

        // 字符串 和 数值的比较 
        //      => 字符串会先转换为数值,再进行比较
        console.log( "10" == 10 ); // true
        console.log( "10" > 10 ); // false

        console.log( "abc" == 10 ); // false
        // false => 先将"abc"转换为 NaN,再进行比较,返回false是因为NaN的比较不能使用==
        console.log( "abc" == NaN );
        // NaN 是一个特殊的标识值,存储的数据每次都是不同的
        console.log( NaN == NaN ); // false
        // NaN 的比较只能使用 JS 内置的 工具功能 isNaN()
        console.log( isNaN( NaN ) ); // true

        console.log( isNaN( "abc" ) ); // true


        // booolean 和 数值的比较 
        //      ==> boolean 类型值转换为 数值后进行比较
        //          true  =>  1
        //          false =>  0
        console.log( true == 1 ); // true
        console.log( true == 100 ); // false
        console.log( true >= 2 ); // false
        console.log( true <= 0 ); // false

        console.log( false == 0 );  // true


        // 字符串和boolean
        console.log( "false" == false ); // false
        console.log( "100" == true ); // false
        console.log( "1" == true ); // true


        // null undefined 不做转换
        //      => 和其它任意值进行等值比较都是 false
        //      => 只有 null 和 undefined 相互或自身等值比较为 true
        console.log( "" == null ); // false
        console.log( false == null ); // false

        console.log( null == null ); // true
        console.log( null == undefined ); // true

        // 总结
        //    等值比较中,如果比较的数据类型一致,直接比较值,不做类型转换;
        //    等值比较中,如果比较的数据类型不一致,统一转换为 数值 再进行比较;
        //    其中 NaN 只能使用 isNaN 进行等值比较;
        //    null 和 undefined 只有和自身或相互比较时返回 true;


        // 没有进行类型转化
        console.log( "abc" == "abc" ); // true

顺序结构 : 再不介入其它代码的情况下,代码的定义顺序就是执行顺序


分支结构

// JS一条语句的结束,通过 ; 或者 换行 描述
        // console.log(1)  console.log(2)

        
        // if 分支 => 条件和执行体之间不能出现;
        //    => 单分支: if(条件){ true-分支代码执行体 }
        //    => 二分支: if(条件){ true-分支代码执行体 }else{ false-分支代码执行体 }
        //    => 多分支: 
        //               if(条件1){ 条件1-true-分支代码执行体 }
        //               else if(条件2){ 条件2-true-分支代码执行体 }
        //               ……
        //    => 多分支: 
        //               if(条件1){ 条件1-true-分支代码执行体 }
        //               else if(条件2){ 条件2-true-分支代码执行体 }
        //               ……
        //               else{ 条件1和条件2和……都不成立-false-分支代码执行体 }

        console.log("1.起床");
        console.log("2.洗漱");
        console.log("3.去车站");
        console.log("4.验票");

        var info = "带了身份证";
        // var info = "身份证丢失";
        // var info = "身份证在家";

        if( info=="身份证丢失" ){
            // 条件是 true 执行,条件是false 跳过
            console.log("4.1.补办临时身份证");
            console.log("4.2.重新验票");
            console.log("5.候车");
            console.log("6.检票");
            console.log("7.进站");
        } else if (info=="身份证在家"){
            console.log("4.1. 改签");
            console.log("4.2. 回家");
        } else {
            console.log("5.候车");
            console.log("6.检票");
            console.log("7.进站");
        }

分支嵌套


        //      if(){
        //          if(){ …… }
        //          if(){ …… } else { …… }
        //          if(){ …… } else if(){ …… } else{ …… }
        //      }else{
        //          ……
        //      }


        // 有一个num值,当该值是偶数时,输出“偶数”否则输出“奇数”
        //            当为奇数时继续判断 ,是否是3的倍数,如果是输出“是3的倍数”否则输出“不是3倍数”

        var num = 11;
        if( num%2==0 ){
            console.log("偶数");
        }else{
            console.log("奇数");
            if(num%3==0){
                console.log("3的倍数");
            }else{
                console.log("不是3的倍数");
            }
        }

if 分支 : 自定义判断条件的


        
        // 判断年份对应的月份的天数是多少?
        var year = prompt("输入年份");
        var moth = prompt("输入月份");
        // prompt 提供的是String数据

        // 省略数据合法的判断
        // if(moth==="2"){
        //     if( year%4==0&&year%100!=0 || year%400==0 ){
        //         console.log(29);
        //     }else{
        //         console.log(28);
        //     }
        // }else if(moth==="1" || moth==="3" || moth ==="5" || moth ==="7" || moth ==="8" || moth ==="10" || moth === "12" ){
        //     console.log(31);
        // }else{
        //     console.log(30);
        // }

 switch case 分支 :自定义判断用于恒等于条件


        //          1.  case不增加 break; 结束符时,是顺序执行
        //                    当某个case的条件成立后,后续没有遇到break的所有case的内容都会执行
        // switch(用于恒等于比较的变量){
        //     case 等于的比较值: 
        //         执行代码;
        //         break;
        //      
        // }

        switch( moth ){
            case "2": 
                // console.log("二月");
                if( year%4==0&&year%100!=0 || year%400==0 ){
                    console.log(29);
                }else{
                    console.log(28);
                }
                break;
            case "1":
            case "3":
            case "5":
            case "7":
            case "8":
            case "10":
            case "12":
                console.log("31");
                break;
            default:
                console.log("30");
                break;
        }

        // 总结:
        //    1. 根据需要完成的页面可能存在的不同的执行代码进行拆分
        //    2. 基于条件的定义,使用分支语句选择分支代码的执行

标签:false,log,Javascript,Day3,else,switch,var,console,true
From: https://blog.csdn.net/clp20031101/article/details/145014936

相关文章