javaScript学习笔记(四)「循环嵌套」、「循环控制」、「函数」、「函数的参数」、「函数返回值」

一、循环嵌套

  • 循环的嵌套:循环内部嵌套另一个循环
  • 常用场景:循环打印一个图形(九九乘法表,三角形,4*5矩形等等)
  • 循环嵌套规律:

1.一个循环内包含完整的另一个循环语句。

2.被包含的循环语句叫内循环,包含别的循环的循环语句叫外循环。

3.外循环每执行一次循环,内循环都会完全执行所有循环次数。

4.循环嵌套的总执行次数是外循环次数乘以内循环次数。

5.循环嵌套不要超过3层。

for (var m=1;m<=8;m++){
    for (var n=1;n<=2*m-1;n++){
         document.write("🔺")
    }
    document.write("<br>")

}
     m=1 第一行  内层循环走了 var n = 1; n <= 1; n++    △
     m=2 第一行  内层循环走了 var n = 1; n <= 3; n++    △△△
     m=3 第一行  内层循环走了 var n = 1; n <= 5; n++    △△△△△

二、循环控制语句

概念:让循环执行到满足某个条件的情况下,停止循环或者控制循环的执行。

为什么要用循环控制:比如在海量数据库中查询一个 用户信息时,循环遍历所有用户,找到就停止。

或者说在循环遍历所有用户信息的时候,跳过一些不满足的条件(比如:遍历海量用户信息,跳过姓王的)

break 终止循环

  • 终止本层循环,不再循环(这里注意:如果有多层循环(内层和外层),只跳出本层循环)
for (var i=1;i<=100;i++){
      console.log(i);
      if(i==5){
      break; 
    }
}
控制台查看结果:只有1-5


双层循环:终止本层循环
for (var i=1;i<=5;i++){  //A层
      for (var j=1;j<=5;j++){  //B层
          if (j===3){
          break;    //只中止B层循环
          }
      document.write(i + "---" + j + "&nbsp;")
       }
   document.write("<br>")
}

 打印结果:

continue 结束本次循环

  • 跳过本次循环,继续下一次循环
  • 比如:吃五个包子,到第三个的时候,第三个掉地下了,不吃了,跳过第三个,继续吃第四个和第五个
  • 跳过本次循环,就可以使用 continue 关键字
for (var i = 1; i <= 5; i++) {
  // 当 i 的值为 3 的时候,执行 {} 里面的代码
  // {} 里面有 continue,那么本次循环后面的代码就都不执行了
  // 自动算作 i 为 3 的这一次结束了,去继续执行 i = 4 的那次循环了
  if (i === 3) {
    continue
  }
  console.log('我吃了一个包子')
}

三、函数认识

函数的概念及作用

函数的概念:具有包裹性的最小的功能模块。

函数的作用:

工作中(业务):a.提高开发效率 b.便于维护---->避免牵一发而动全身。

代码角度:提高代码的复用性

封装了一个打印三角形的功能:

function printSjx(){
    for(var i=1;i<=5;i++){
        for (var j=1;j<=i;j++){
         document.write('🔺')
        }
    document.write('<br>')
    }
}
//调用函数
printSjx();

打印结果:

四、函数定义

1、声明式定义

function 函数名(参数列表){

函数体

}

2、函数表达式

var 函数名= function(参数列表){

函数体

}

分析:

function: 告知编译器该关键字后面的标识符为函数类型

函数名: 标识符命名规则(驼峰命名法)

参数列表:(稍后详细讲解)

函数体{}: 内部的代码会在函数被调用的时候执行

注意:函数定义完毕,需要经过调用才能够执行

计算100-200内数字的和:

function getSum(){
    var sum=0;
    for (var i=100;i<=200;i++){
      sum+=i;
    }
 console.log(sum)
}

//调用函数
getSum();

打印结果:

五、函数调用

函数调用的形式:函数名()

六、函数参数(重点)

什么是函数参数:有的时候,我们想根据传入的不同数据得到不同的结果或效果。

函数参数分类:形参和实参

形参:定义函数时的参数

function getSum(x,y){
    console.log(x,y)
}
//形参:定义函数时的参数

实参:调用函数时的参数

getSum(1,100)
//实参:调用函数时的参数

注意:函数调用的本质就是将实参一一传递(赋值)给形参,也就是说行参的值是在函数调用的时候由实参决定的

功能A:定义函数,求一个范围内(x-y)能被5整除的数字个数

function getCount(x,y){
   var count=0;
   for (var i=x;i<=y;i++){
        if(i%5==0){
         count++;
        }
    }
    document.write(count)
}
    getCount(100, 200);//求100到200内所有能被5整除的数字个数
    document.write('<br>')
    getCount(200, 400);//求200到400内所有能被5整除的数字个数
    document.write('<br>')
    getCount(300, 400);//求300到400内所有能被5整除的数字个数
    document.write('<br>')

功能B:求任何两个年份之间的平年的个数

function getCount(x,y){
     var count=0;
     for (var i=x;i<=y;i++){
         if(!(i%4==0 && i%100!=0 || i%400==0)){
            count++;
          }
     }
      document.write(count);
}
getCount(1990,2040)

七、函数返回值(重难点)

前提说明:在函数的外部访问不到函数内部定义的变量

什么是函数返回值:有的时候我们想让函数的运算结果当成一个值保存起来,我们就可以用return

函数返回值:return有返回的意思,其实就是给函数一个 返回值 和 终断函数两层含义

特点:带返回值的函数在调用时有两层含义:

1. 执行{}内部的代码

2. 把函数调用当成一个值,该值和return 后的值相等,该值可以直接输出,或者存储成变量,然后输出

比如:

    function getSum() {
        var x = 10;
        return x;
    }

    console.log(getSum());
 

举一反三:

  定义一个函数,返回数字1到n的和:

    function getSum(n) {
        var sum=0;
        for (var i = 1; i <= n; i++) {
            sum +=i;
        }
        return sum
    }
    document.write(getSum(+prompt('请输入一个数字')));
  定义一个函数,键盘录入一个数字n,获取n的阶乘 :
    function getJc(n) {
        var jc = 1;
        for (var i = 1; i <= n; i++) {
            /*
              第一次循环:jc = jc*i = 1*1 = 1
              第二次循环:jc = jc*2 = 1*1*2
              第三次循环:jc = jc*3 = 1*1*2*3
            */
            jc *= i;
        }
        return jc
    }
    // console.log(getJc(10));
    // console.log(getJc(5));
    // 将输入的值赋值给n(将实参一一传递(赋值)给形参)   n = prompt('请输入...')
    console.log(getJc(+prompt('请输入...')));
 

其他注意事项:

  1. 一个函数只能返回一个结果
  2. return除了有返回的含义,还有终止函数执行的含义,return后的代码将不再执行
  1. 任何函数都有return,一个函数如果没有写return,实际上默认有一行代码叫return undefined。

     打印n行三角形( 一般函数带参数不带返回值)

  function printSjx(n){
      for(var i= 1;i<=n;i++){
          for(var j =1;j<=i;j++){
              document.write('&')
          }
          document.write('<br>')
      }
  }
  printSjx(5)

   终止函数的执行,函数将不再向下进行,跳出函数:

function getSum(){
     return 1; //终止函数的执行,下面代码不会在执行
     console.log('hehe');
     return 2;
 }

 console.log(getSum());

function getN(){

    return undefined; //隐含的

   }

function getN(){}
// 任何函数都有return,一个函数如果没有写return,实际上默认有一行代码叫return undefined。
console.log(getN()); //undefined  

八、总结

问:什么时候需要带return,什么时候不能带return?

答:当一个函数可以计算一个值时,都是可以带return的。像函数如果是打印一个图形,那么函数肯定不能带return。

目录

一、循环嵌套

二、循环控制语句

三、函数认识

四、函数定义

五、函数调用

六、函数参数(重点)

七、函数返回值(重难点)

八、总结


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值