函数补充、双重for循环和break、continue语句

745 阅读3分钟

一、函数

JavaScript 函数有个内置的对象 arguments 对象。

argument 对象包含了函数调用的参数数组。

通过这种方式你可以很方便的找到最大的一个参数的值:

arguments属性:

是一个js里面的关键字,代表参数的集合,类似数组,但是不是真正的数组
和数组的用法一样 使用【索引】可以取出数组里面的值
通过arguments.length可以打印出参数集合的长度
arguments.callee就代表了这个fn函数的本身 使用如下:

<script>
    function fn(){  //创建函数
        console.log(arguments);//打印fn的实参
        console.log(arguments.length);//打印长度
        console.log(arguments[0]);//打印数组第0个值
        console.log(arguments.callee);//
    }
    fn('宝马','x6','100w'); //调用fn 写实参
</script>

上面代码得到的结果图如下:

1.png

用小括号把function包起来,表示成为一个表达式,一个匿名自执行函数

let str = (function (){
    let price = parseInt(prompt('汽车价格'));
    if(price > 200000){
    return '太贵了';
    }
    if(price >= 100000){
    return '适合代步';
    }
}) ();
document.write('<h1>' + str + '</h1>') 

2.递归函数

递归函数就是自己调用自己

function fn(n){
    if(n>=1){
        return n + fn(n-1); //调用自己进行判断
    }                       // 意思为 5 + (5-1)+(4-1)...+(1-1)
    return 0;               //不满足if条件后返回0 如果写没有return就会返回NA(undefined)
     }
  let num =  fn(5);
  console.log(num);

上述代码返回值为15
注:如果不加条件判断 回陷入死循环

二、双重循环

双重循环就是一个循环体内又包含另一个完整的循环结构,比如:

<script>
    for(循环条件1){     //外层循环
       //循环操作1
       for(循环条件2){    //内层循环
       //循环操作2
      }
    }
 </script>
 

双重for循环练习99乘法表代码如下:

<script>
let str = '';//定义一个空值变量
    for (var i = 1; i<= 9; i++){   //控制行数
      for(var j = 1;j <=i;j++){    //控制列数
       str +=  j + '&nbsp;x&nbsp;' + i + '&nbsp;=&nbsp;' + i * j + '&nbsp;&nbsp;';
       //给空值赋值
      }
        str +=  '<br>';//外层循环加换行符
    }
    document.write(str);
</script>

结果图:

2.png

1.break语句

break 语句用于退出 switch 语句或循环语句(for, for ... in, while, do ... while)。
当 break 语句用于 switch 语句中时,会跳出 switch 代码块,终止执行代码。
当 break 语句用于循环语句时,会终止执行循环,并执行循环后代码(如果有的话)。
break 语句同样可用于可选的标签引用,用于跳出代码块。
注意:  break 语句(不带标签引用),只能用在循环或 switch 中。

break练习

使用while循环打印我是程序员5次,但是第4次的时候就不打印了 代码如下:

<script>
 while(i <= 5){
    if(i == 4){
        break;  //判断i等于4的时候跳出循环
    }
    document.write('我是程序员' + '<br>');
    i++;
}
</script>

最后在html页面中只能得到三个“我是程序员”

2.continue语句

continue 用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代。
continue 与 break语句的区别是, break 是结束整个循环体,continue是结束单次循环。
但是,在执行 continue 语句时,表现出了两种不同类型的循环:

  • 在 while 循环中,会先判断条件,如果条件为 true,循环再执行一次。
  • 在 for 循环中,自增长表达式 (如:i++) 会先计算,然后再判断条件是否为true,再决定是否执行迭代。 continue 语句可应用于可选的标签引用。
    注意:  continue 语句(不带标签引用),只能用在循环或 switch 中。

continue练习

依次输入5名学员成绩,如果成绩输入为负数,给予错误提示,但并不退出程序;否则,在页面中输出学员成绩, 代码如下:

<script>
for (var i = 1; i <=5 ; i++){
    let j = parseInt(prompt('请输入第'+i+'学生成绩'));
    if (j < 0 ){
        alert('输入有误');
        document.write('第'+ i +'名同学成绩有误,该成绩作废!' +'<br>');
        continue;
    }
    document.write('第'+i +'名同学的成绩为:' + j +'<br>');

}
</script>