函数
函数不调用就不能执行
封装了一块可以重复使用的代码块
声明函数
1.function 函数名。 函数名一般是动词
2.函数表达式(匿名函数):var 变量名 = function() {};
变量名不是函数名
调用函数
函数名()
变量名()
形参
在声明函数括号里是形参
函数调用括号里是实参
形参和实参个数可以不匹配
参数个数 | 说明 |
---|---|
实参个数等于形参个数 | 输出正确结果 |
实参个数多于形参个数 | 只取到形参个数 |
实参个数小于形参个数 | 多的形参定义为undefined,结果为NaN |
return
函数内部不应该写输出语句 用return返回给函数调用者。再把调用者打印出来
实际开发中常用一个变量来接收函数的返回结果
Return 终止函数。 return后面的代码不再执行
return只能返回一个值 多个值会以最后一个为准
Return 返回多个值可以用数组
函数没有return 则返回undefined
arguments
不确定有多少个参数传递时,可用arguments来获取,是当前函数的一个内置对象,所有函数都内置了一个arguments对象,只有函数才有,里面存储了传递的所有实参
arguments展示形式是一个伪数组 并不是真正意义上的数组可以进行遍历
伪数组特点:
具有length属性
检索方式存储数据(按照索引方式存储)
不具有数组的push,pop等方法
arguments案例-数字排序【不是数组的冒泡排序】
function sort() {
var temp;
for(var i =0;i<=arguments.length-1;i++){
for(var j=0;j<=arguments.length-i-1;j++) {
if(arguments[j] > arguments[j+1]) {
temp = arguments[j];
arguments[j] = arguments[j+1];
arguments[j+1] = temp;
}
}
}
return arguments;//必须要有返回值才可以打印
}
console.log(sort(5,7,9,1.3))
判断闰年案例
function isRunYear(year) {
if(year % 4 == 0 && year % 100 != 0 ||year % 400 == 0){
return alert(year+"是闰年")
}else {
return alert(year+"不是闰年")
}
}
console.log(isRunYear(n = prompt("请输入要查询的年份")));