for循环

  • 赋值运算符和一元运算符
  • 运算符优先级
  • 循环结构

一、赋值运算符和一元运算符

目标:知道不同赋值运算符的含义及其使用,能够明白自增/减运算符前置或后置的差异

1.1 赋值运算符

  1. 赋值运算符:对变量进行赋值的运算符

    1. 已经学过的赋值运算符:=
    2. 其他赋值运算符:Ø+= -= *= /= %=
  2. 使用这些运算符可以在对变量赋值时进行快速操作
  1. <script>
  2. // let i = 5
  3. //前置自增和后置自增不参与运算的情况下,都是自身加1
  4. //++i //前置自增
  5. //i++ //后置自增
  6. //参与运算的情况下,前置自增是自身加1,在参与运算
  7. // 后置自增是参与运算,在自身加1
  8. // console.log(++i + 2)
  9. // console.log(i++ + 2);
  10. // console.log(i)
  11. let m = 3
  12. let n = m++
  13. let k = (m++ + ++m * 6)
  14. console.log(m, n, k)
  15. </script>

1.2 一元运算符

  • 二元运算符:需要两个表达式才能进行运算

    • let num=10+20
  • 三元运算符:需要三个表达式才能进行运算

    • let max=10 >5 ?10:5
  • 一元运算符:需要一个表达式就可以进行运算

    • let res=!true
  1. 自增运算符的用法:

    1. 前置自增和后置自增独立使用时二者并没有差别!
    2. 一般开发中我们都是独立使用
    3. 后面 i++ 后置自增会使用相对较多

二、运算符优先级

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

优先级 运算符 顺序
1 小括号 ()
2 —元运算符 ++ — !
3 算数运算符 先*/%后+-+
4 关系运算符 >>= <<=
5 相等运算符 == !==== !==
6 逻辑运算符 先&&后ll
7 赋值运算符 =
8 逗号运算符 ,
  1. let a = 3 > 5 && 2 < 7 && 3 == 4 // 答案是false,此时发生了逻辑与中断
  2. console.log(a);
  3. let b = 3 <= 4 || 3 > 1 || 3 != 2 //答案是true,此时发生了逻辑或中断
  4. console.log(b);
  5. let c = 2 === "2" //答案是false 数据类型不匹配
  6. console.log(c);
  7. let d = !c || b && a //答案是true,此时发生了逻辑或中断
  8. console.log(d);

三、循环结构

3.1断点调试

目标:掌握断点调试方法,学会通过调试检查代码

  • 作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug浏览器
  • 打开调试界面

    1. 按F12打开开发者工具
    2. 点到sources一栏
    3. 选择代码文件+..
  • 断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来
  1. //1.案例1
  2. let age = prompt('请输入第一个数')
  3. if (age > 5) {
  4. alert('你好,孩子')
  5. } else {
  6. alert('熊孩子')
  7. }
  8. //2.案例2
  9. let age = prompt('请输入年龄')
  10. function boy(a) {
  11. if (a > 5) {
  12. return '我长大了'
  13. } else {
  14. return '我还是宝宝'
  15. }
  16. }
  17. console.log(boy(age));

3.2 while 循环

目标:掌握while循环语法,能重复执行某段代码

  • 循环:重复执行某段代码,而while :在….期间

    1. while循环语法:
    2. while(循环条件){要重复执行的代码(循环体)}
  • 释义:
  • 跟if语句很像,都要满足小括号里的条件为true才会进入执行代码
  • while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出

2.while循环注意事项:

循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程。

3.3 do-while循环

目标:掌握do while循环语法,能重复执行某段代码

  1. do while循环语法:

    1. do{
    2. 要重复执行的代码(循环体)
    3. }
    4. while(循环条件)
    5. ---------------------------------------------------------------
    6. /* do {
    7. 循环体﹑先执行do里边的循环体一次, 再去判断循环条件,如果循环条件true,循环体继续执行, 如果循环条件为false, 循环结束
    8. }while(循环条件) */
    9. //求1-100的和
  1. 释义:

    1. 先执行do里面的语句
    2. 执行完毕后,到 while里面判断条件是否满足,如果满足则回头继续执行do里面的语句,如果条件不满足,则退出循环
  1. 案例:求1-100的和
  2. let i = 1
  3. let sum = 0
  4. do {
  5. sum = sum + i
  6. i++
  7. } while (i <= 100)
  8. document.write(sum);
  9. ----------------------------------------
  10. do {
  11. love = prompt('你爱我吗')
  12. } while (love !== '爱')
  13. alert('我也爱你')

3.4for循环

  1. 变量的起始值
  2. 判断循环条件, 循环条件为true, 执行循环体
  3. 变量的变化值— - 判断循环条件–循环体
  4. 循环条件为false,循环结束

    • 注意: 变量的变化值,只执行一次
  1. for(变量的起始值3;玄幻条件;变量的变化值
  2. { 循环体
  3. }
  4. //代码块:
  5. for (let i = 1; i <= 100; i++) {
  6. document.write(i + '岁<br>')
  7. }
  8. --------------------------------------------------

for循环的案例:

  1. //1. 1-100之间所有数的平均值 1-100的和/100
  2. let sum = 0
  3. for (let i = 1; i <= 100; i++) {
  4. sum = sum + i
  5. }
  6. let avg = sum / 100
  7. document.write(avg)
  8. //2.求1-100偶数的和还有奇数的和
  9. let even = 0
  10. let odd = 0
  11. for (let i = 1; i <= 100; i++) {
  12. if (i % 2 === 0) {
  13. even += i
  14. } else {
  15. odd += i
  16. }
  17. }
  18. document.write(`偶数的和是${even},奇数的和是:${odd}`)

3.4-1循环的嵌套:

  1. for(外部声明记录循环次数的变量;循环条件;变化值){
  2. for (内部声明记录循环次数的变量;循环条件;变化值){
  3. 循环体
  4. }
  5. }

案例:-打印五行五列小星星

  1. <script>
  2. //打印5颗小星星
  3. /* 🦆
  4. 🦆🦆
  5. 🦆🦆🦆
  6. 🦆🦆🦆🦆
  7. 🦆🦆🦆🦆🦆
  8. 🦆🦆🦆🦆🦆🦆
  9. 🦆🦆🦆🦆🦆🦆🦆
  10. 🦆🦆🦆🦆🦆🦆🦆🦆
  11. 🦆🦆🦆🦆🦆🦆🦆🦆🦆 */
  12. for (let j = 1; j <= 9; j++) {
  13. for (let i = 1; i <= j; i++) {
  14. document.write('🦆')
  15. }
  16. document.write('<br>')
  17. }
  18. //倒三角行
  19. /* 🐕🐕🐕🐕🐕🐕🐕🐕🐕
  20. 🐕🐕🐕🐕🐕🐕🐕🐕
  21. 🐕🐕🐕🐕🐕🐕🐕
  22. 🐕🐕🐕🐕🐕🐕
  23. 🐕🐕🐕🐕🐕
  24. 🐕🐕🐕🐕
  25. 🐕🐕🐕
  26. 🐕🐕
  27. 🐕 */
  28. for (let j = 9; j >= 1; j--) {
  29. for (let i = 1; i <= j; i++) {
  30. document.write('🐕')
  31. }
  32. document.write('<br>')
  33. }
  34. </script>

案例-九九乘法表

  1. //css部分
  2. span {
  3. display: inline-block;
  4. margin: 5px;
  5. height: 30px;
  6. width: 100px;
  7. text-align: center;
  8. line-height: 30px;
  9. border-radius: 6px;
  10. background-color: orangered;
  11. border: 1px solid #000;
  12. }
  13. //js部分
  14. <script>
  15. for (let j = 1; j <= 9; j++) {
  16. for (let i = 1; i <= j; i++) {
  17. document.write(`<span>${i${j}=${i * j}</span>`)
  18. }
  19. document.write('<br>')
  20. }
  21. </script>

3.5-循环结束

目标:能说出continue和lbreak的区别

  • 循环结束:

    • continue:结束本次循环,继续下次循环
    • break:跳出所在的循环
  1. <script>
  2. // 求1-100的和,将7的倍数排除在外
  3. // let sum = 0
  4. // for (let i = 1; i <= 100; i++) {
  5. // if (i % 7 === 0) {
  6. // 跳过本次循环,后边的循环继续
  7. // continue
  8. // } else {
  9. // sum += i
  10. // }
  11. // }
  12. // document.write(sum)
  13. // 求1-100之间,从第一个到第6个能被3整除的数的和
  14. // 3 6 9 12 15 18 21 24
  15. let sum = 0
  16. let count = 0 // 记数
  17. for (let i = 1; i <= 100; i++) {
  18. if (i % 3 === 0) {
  19. sum += i
  20. count++
  21. }
  22. if (count === 6) {
  23. break // 当前循环结束 跳出当前循环
  24. }
  25. }
  26. document.write(sum)
  27. </script>

三种循环区别

  • 三种循环区别:

    • for 语句和 while 语句是完全可互换的,for 的语法结构更简洁, for 循环的使用频次会更多
    • 如果涉及到条件判断的时候使用while 更合适
    • 如果涉及到计算次数的时候使用for更简单,语法更简单明了
    • do-while 循环体至少使用一次如果某些代码一定会执行一次可以考虑

三—1、循环结构小结

目标:掌握循环结构,实现一段代码重复执行

  1. 断点调试
  2. while循环

    • 记得要写改变记录循环次数的变量
  3. 1.do-while循环

    • 循环体至少执行一次
  4. for循环
  5. 循环结束

    • break
    • Continue
  6. 循环结构

    • while
    • do-while
    • for
    • continue
    • break