1. 函数
1.1 函数概念
函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的 重复使用。
// 不用函数
求 1~10的累加和
var sum = 0;
for (var i = 1; i <=10; i++) {
sum += i;
}
console.log(sum);
//使用函数
//函数就是封装了一段可以被重复执行调用的代码块 目的: 就是让大量代码重复使用 function getSum(num1, num2) {
var sum = 0;
for (var i = num1; i <= num2; i++) {
sum += i; }
console.log(sum); }
getSum(1, 5);
getSum(1, 10);
1.2 函数的声明
声明函数
function 函数名() {
函数体代码
}
调用函数 函数名();
通过调用函数名来执行函数体代码
- 调用的时候千万不要忘记添加小括号
- 口诀:函数不调用,自己不执行
- 注意:声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码。
定义函数的两种方式区别:
-1. 函数声明式,调用的时候可以放在函数定义的上面或者下面
printSjx();
function printSjx() {
document.write('<table>')
for (var i = 1; i <= 9; i++) {
document.write('<tr>')
for (var j = 1; j <= i; j++) {
document.write('<td>'+i+'*'+j+'='+i*j+'</td>')
document.write(`<td>${i}*${j}=${i * j}</td>`)
}
document.write('</tr>');
}
document.write('</table>')
}
- 2.表达式声明法:调用时只能写在函数定义的下面,放在上面会报错
printSanJiaoXing();
var printSanJiaoXing = function(){
document.write('<table>')
for (var i = 1; i <= 9; i++) {
document.write('<tr>')
for (var j = 1; j <= i; j++) {
document.write('<td>'+i+'*'+j+'='+i*j+'</td>')
document.write(`<td>${i}*${j}=${i * j}</td>`)
}
document.write('</tr>');
}
document.write('</table>')
}
1.4 函数的参数
- 函数参数语法
形参:函数定义时设置接收调用时传入
实参:函数调用时传入小括号内的真实数据
参数的作用 : 在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去。
函数参数的运用:
1.调用的时候实参值是传递给形参的
2.形参简单理解为:不用声明的变量
3.实参和形参的多个参数之间用逗号(,)分隔
- 函数形参和实参数量不匹配时
1.形参和实参个数相同时,参数赋值会一一对应
2.形参个数>实参个数: 没有给赋值的形参,值为undefined
3.实参的数>形参个数:可以通过arguments来获取传入的实参
小结:
1.函数可以带参数也可以不带参数
2.声明函数的时候,函数名括号里面的是形参,形参的默认值为 undefined
3.调用函数的时候,函数名括号里面的是实参
4.多个参数中间用逗号分隔
5.形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配
1.6 函数的返回值
- return 语句
返回值:函数调用整体代表的数据;函数执行完成后可以通过return语句将指定数据返回 。
我想把的到的这个和,存起来,下次还能用
return 只能返回一个值 - 比如
function getSum(x,y){
return x+y;
}
通过return 关键字返回出来的结果,函数调用时,结果就可以被保存起来
var sum = getSum(10,23);//把结果保存在sum变量中
带return的函数,函数调用的结果是一个值,可以直接输出,也可以存到变量中
console.log(sum);
function getA(){
return 'zs'
}
函数如果带return了,函数调用的结果是 一个值,可以直接输出,也可以保存到变量里
console.log(getA());
var x = getA()
console.log(x);
1.7 arguments的使用
- 当不确定有多少个参数传递的时候,可以用 arguments 来获取。
每一个函数内部都会有一个叫arguments:它会记录你传递过去的所有实参 arguments: [2, 3, 6, 4, 5]
arguments[0] arguments[1] arguments[2] arguments[3] arguments[4]
length:长度(个数) arguments.length:传入实参的个数 arguments[aruments.length-1]:
传入参数的最后一号元素
1.8return的补充知识
1.没有手写return的话,系统会在程序{}的结尾处,写return undefined;
2.函数带return了,函数调用的结果是return后面的值
3.函数只写一个return;函数调用结果还是undefined
4.函数只能带出来一个值
5. return终止函数后面的代码将不再执行