js循环流程

1·.回顾

比较运算符: < > <= >= == != !==

数学运算符:+ - * / % **

赋值运算符: = += -= *= /= %= **= 赋值运算符

基础类型: string Number symbol null undefined Boolean bigInt 存放在栈区

引用类型:object Array function 存放堆区

思考:栈和堆的区别?

2.调试基础

{} 数组[取值] 对象可以使["属性名"] 或者 .属性名 取值

以下是调试段代码

   <script>
        let obj={
            name:1,
            ss:{
                ww:"大哥"
            },
            arr:[1,"arr中的数据",{qwe:"数据中的数据"},4,8]
        }
        console.log(obj);
        // 打印全部,部分包装隐藏{},部分打印数组[]
        // console.log(obj.name,obj["name"],"name");
        // // 两种调用方式,加单纯打印
        // console.log(obj.ss.ww,"ww");
        // 不解释
        console.log(obj.arr[1],"arr");
        // 从0开始
        // console.log(obj.arr[2].qwe,"qwe");
        // 不解释

    </script>

3.逻辑运算符

!非  ||  或   && 与

1.结果返回布尔值

2.返回对应的数据?

!去反(非)

|| (或)并联  一个行就行

false || true  返回  true

false || false  返回 false

true || false 返回 true

true || true 返回 true

遇到true 返回true,后续不管了

全是false才返回false

<script>
    //  let a=false || false 
    //  console.log(a);
    let b=undefined||0
    console.log(b);
    console.log(typeof b);
    // 这里涉及到隐士类型转换,夹带和强制类型转换做区分
    
 </script>

js隐士类型转换参考资料:js隐式转换与强制转换汇总_清虚桂意的博客-CSDN博客_js隐式转换和显式转换

&& 与

串联 必须都行才行

true && false 返回false

false && false 返回 false

true && true 返回true

false && true 返回false

遇到false就返回false,后续不管

全是true才返回true,返回最后一个值?

运算符优先级 :

一元运算符>!>算数运算符>比较运算符> 逻辑运算符|| &&>赋值(待补充)

调试段代码:

script>
    //  let a=false&&true&&false
    //  console.log(a);
    // let b =0 &&"iu"
    // console.log(b);
    // 数字类型优先级貌似更大
 </script>

4.一元运算符

++ 自增 --自减   +1 -1

++  -- 后置,先赋值 不参与运算 ,会修改原来的值进行+1或-1

++ --前置   参与运算 不赋值,会修改原值进行+1或-1

区别就在于 a和c总是要变的,对于整体(+10)运算来讲,字母打头就原值计算,运算符打头,加减1

5.if控制

控制流程

if()else{}

如果if(布尔值[变量],隐士类型转换成布尔值才能判断){

true执行该或括号内部代码

}else{否则

false执行这个花括号内部代码

}

调试代码:

<script>
   if(a=false){
       console.log(a+"喜欢美女" );
   }else{
       console.log(a+"喜欢看帅哥");
   }
 </script>

if(){}else if(){}

1.内层嵌套无限套娃;

2.执行完花括号里面带的代码就会跳出去,执行完对应的或括号代码不管后续else if等

3.if(){true进去}esle{false进去}

测试代码

    
 <script>
     let a="大力";
     let bol="不是";
     if(bol=="美女"){
         console.log(a+"喜欢美女");
     }else if(bol=="帅哥"){
         console.log(a+"喜欢帅哥");
     }else{
         console.log(a+"不结婚");
     }
 if(true){
            if(false){
                
            }else{

            }
        }
 </script>

if...else语句的四种结构用法_光秃秃的康师傅的博客-CSDN博客_else if

6.三目运算符

?:

布尔值判断?true的返回值:false的返回值

复杂的三目不要去写

if(){}代替

调试段:

  // let a=0?"帅哥":"美女"
    // // 非0自动转换为1
    // // 非false自动转换为true
    // // 只能判断布尔类型,数字自动转布尔,
    // console.log(a);
    // let c=false?true:false
    // console.log(c);
    if(1){
        console.log("帅哥");
    }else{
        console.log("美女");
    }
     // 不要写去诸如此类复杂的
        // let a = true ? true ? "123" : 123 : false ? "false123"  : "false的false"
        // console.log(a);

7.switch 控制 循环判断

1.switch(){

case 布尔值:

true执行对应代码;

break;跳出控制流程

default:默认执行;前面所有判断不成功,就执行默认值

}

请你区别和if循环特别是在跳出方面的区别?

:判断语句结束

:后面要执行的代码

2.switch能完成的,if(){}else 也能完成

3.数据不是传true,传递的是其他数据,传递的值与case设置的条件进行等于判断?

<script>
    let a="同性人"
    // let a=12
// switch(true){
//     case a<18:
//         console.log("未成年不能进入网吧");
//         // 可以写任意代码
//         break;
//         case a >=18 && a<=25:
//             console.log("欢迎网咖");
//             break;
//         case a>25 && a<65:
//             console.log("建议休息时间来上网");
//             break;
//         case a>=66 && a<=75:
//             console.log("建议你不要上网,外出运动");
//             break;
//             case a>=76:
//                 console.log("老板你好");
//                 }
switch (a){
    case"帅哥":
    console.log("帅哥");
    break;
    case"美女":
    console.log("美女");
    break;
    case 10==10:
    console.log("同性人");
    break;
    default:
        console.log("不知道");
        // 不识别汉字,但识别字符
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白村第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值