一、函数
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>
上面代码得到的结果图如下:
用小括号把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 + ' x ' + i + ' = ' + i * j + ' ';
//给空值赋值
}
str += '<br>';//外层循环加换行符
}
document.write(str);
</script>
结果图:
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>