JavaScript 基础(2)

目录

运算符

1.1 赋值运算符

1.2 一元运算符

 1.3 比较运算符          

1.4 逻辑运算符

1.5 运算符优先级

语句 

2.1 表达式和语句

2.2 分支语句

2.2.1 if语句

2.2.2 三元运算符

2.2.3 switch语句 

2.3 循环语句


运算符

1.1 赋值运算符

            对变量进行赋值的运算符

         1.1.1 :=  将等号右边的值赋予给左边 要求左边必须是个容器

         1.1.2 :+= 变量自加 在进行赋值    如let num = 10,则num加5: num +=5

1.2 一元运算符

            自增一元运算符:++ 让变量的值+1 经常用于计数来使用

             用法:1.前置自增:++i  先自加再使用 ++在前 先加

                       2.后置自增: i++  先使用再自加 ++在后 后加

             区别:前置自增和后置自增单独使用没有区别 但是参与运算就有区别了

      面试题:结果是7

<script>
     let i = 1
     console.log(i++ + ++i + i)
</script>

 1.3 比较运算符          

       1.3.1  比较两个数据大小。比较结果为boolean类型 只会得到true或false

       

           =赋值      ==是判断     ===是全等(强烈推荐使用)

      1.3.2 字符串比较:是比较的字符对应的ASCII码

      1.3.3 NAN 不等于任何人,包括他自己   涉及到NAN都是false

      1.3.4 尽量不要比较小数 因为小数有精度问题

1.4 逻辑运算符

         用来解决多重条件判断。

     逻辑与&&:1.第一个操作数为真:会进入第二个操作数的判断,且无论第二个操作数真假,都会                              返回第二个操作数。
                        2.第一个操作数为假:不会进入第二个操作数的判断,直接返回第一个操作数。

     逻辑或||:1.如果第一个操作数为真,则不会进入第二个数的判断。所以无论第二个操作数                                 真假,都直接返回第一个操作数
                            2.如果第一个操作数为假,则会进入第二个数的判断。但是无论第二个操作数真                                假,都直接返回第二个操作数

       console.log(NaN || "") 结果是" "。console.log(0 || false) 结果是false(因fasle隐式转换成数字0)。console.log(' ' || false) 结果是false(因' '空串是假值)。console.log(0 == false) 结果是true。空串和0都属于假值。null跟undefinde双等为真 三等为假。

1.5 运算符优先级

        掌握运算符优先级 能判断运算符执行的顺序

  •  一元运算符里面的逻辑非优先级很高
  •   逻辑与比逻辑或优先级高 

语句 

    js中的流程控制语句一共分三类:顺序结构,分支结构和循环结构。

2.1 表达式和语句

             表达式是可以被求值的代码。可以写在赋值语句的右侧

             语句是一段可以执行的代码。语句不一定有值 如alert()for break等语句

2.2 分支语句

            分支语句可以让我们有选择性的执行想要的代码

2.2.1 if语句

1.单分支if语句语法:

if(条件表达式) {
  // 满足条件要执行的语句
}

     小括号内的条件结果是布尔值,为 true 时,进入大括号里执行代码;为false,则不执行大括号里面代码。小括号内的结果若不是布尔类型时,会发生类型转换为布尔值,类似Boolean()。如果大括号只有一个语句,大括号可以省略,但是不提倡这么做~

2. 双分支if语句语法:如果有两个条件的时候,可以使用 if else 双分支语句

if (条件表达式){
  // 满足条件要执行的语句
} else {
  // 不满足条件要执行的语句
}

     练习:判断闰年案例

<script>
    // 1. 用户输入
    let year = +prompt('请输入年份')
    // 2. 判断输出
    if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
      alert(`${year}年是闰年`)
    } else {
      alert(`${year}年是平年`)
    }
  </script>

3.多分支if语句语法:  使用场景: 适合于有多个条件的时候      

if (条件1) {
      代码1
    } else if (条件2) {
      代码2
    } else if (条件3) {
      代码3
    } else {
      代码n
    }
2.2.2 三元运算符

        使用场景: 一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分                              支 更简单

         符号:? 与 : 配合使用

         语法: 条件 ? 满足条件执行的代码   : 不满足条件执行的代码

练习:数字补0案例

<script>
    // 1. 用户输入 
    let num = prompt('请您输入一个数字:')
    // 2. 判断输出- 小于10才补0
    // num = num < 10 ? 0 + num : num
    num = num >= 10 ? num : 0 + num
    alert(num)
</script>
2.2.3 switch语句 

 使用场景: 适合于有多个条件的时候,也属于分支语句,大部分情况下和 if多分支语句 功能相同

注意:

  1. switch case语句一般用于等值判断, if适合于区间判断
  2. switchcase一般需要配合break关键字使用 没有break会造成case穿透
  3. if 多分支语句开发要比switch更重要,使用也更多
    <script>
      switch (2) {
        case 1:
        console.log('您选择的是1')
        break  // 退出switch
        case 2:
        console.log('您选择的是2')
        break  // 退出switch
        case 3:
        console.log('您选择的是3')
        break  // 退出switch
        default:
        console.log('没有符合条件的')
      }
    </script>

if 多分支语句和 switch的区别:

  1. 共同点

    • 都能实现多分支选择, 多选1
    • 大部分情况下可以互换
  2. 区别:

    • switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,通常用于范围判断(大于,等于某个范围)。
    • switch 语句进行判断后直接执行到程序的语句,效率更高,而if…else语句有几种判断条件,就得判断多少次
    • switch 一定要注意 必须是 === 全等,一定注意 数据类型,同时注意break否则会有穿透效果
    • 结论:
      • 当分支比较少时,if…else语句执行效率高。
      • 当分支比较多时,switch语句执行效率高,而且结构更清晰。

2.3 循环语句

2.3.1 断点调试

      作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug

      浏览器打开调试界面:按F12打开开发者工具,点到源代码一栏 ( sources ),

                                          选择代码文件

2.3.2 while循环

      使用场景:重复执行 指定的一段代码,while : 在…. 期间, 所以

                        while循环 就是在满足条件期间,重复执行某些代码。

      语法:while (条件表达式) { // 循环体 }

      循环三要素:变量起始值       终止条件     变量变化量(用自增或者自减)

<script>
  // 1. 变量的起始值
  let end = +prompt('请输入次数:')
  let i = 1
  // 2. 终止条件
  while (i <= end) {
  document.write('我要循环三次 <br>')
  // 3. 变量的变化量
  i++
}
</script>

循环练习题:

<script>
        //1.页面输出1~100
        // let i = 1
        // while (i <= 100) {
        //     document.write(`这是第${i}个数<br>`)
        //     i++
        // }
        //2.计算从1加到100的总和并输出
        // let i = 1
        // let sum = 0
        // while (i <= 100) {
        //     //sum = sum + i
        //     sum +=i
        //     i++
        // }
        // console.log(sum);
        //3.计算1~100之间的所有偶数和
        let i = 1
        let sum = 0
        while (i <= 100) {
            //筛选偶数  如需要奇数的话 修改为 i % 2 !== 0
            if (i % 2 === 0) {
                sum = sum + i
            }
            i++
        }
        console.log(sum);
    </script>

2.3.3 循环退出

   循环结束:break:退出整个循环 中止整个循环,一般用于结果已经得到, 后续的循环不需要的                                      时候可以使用(提高效率)

                     continue:结束本次循环,继续下次循环 中止本次循环,一般用于排除或者跳过某                                          一个选项的时候

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值