一、函数的使用:
1、声明函数
function 函数名(){
//函数体
}
2、调动函数
函数不调用,自己不执行.
函数名();
如sayHi();
二、计算1-100之间的数字和
function getsum() {
var sum = 0;
for (var i = 0; i <= 100; i++) {
sum += i;
}
console.log(sum);
}
getsum();
三、形参和实参
function 函数名(形参1,形参2.....){
//函数体
}
函数名(实参1,实参2....);
在声明函数的小括号里面是形参,在函数调用的小括号里面是实参
形参是接收实参的,形参类似于一个变量
function cook(aru) {
console.log(aru);
}
cook('酸辣土豆丝');
四、实参和形参的数量匹配问题
1、如果实参的个数和形参的个数一致,那么正常输出结果
2、如果实参的个数大于形参的个数,那么会取到形参的个数
3、如果实参的个数小于形参的个数,多于的形参定义为underfined,最终的结果就是NaN
五、函数的返回值
return语句:
function 函数名(){
//return需要返回的结果;
}
函数名();
我们函数只是实现某种功能,最终的结果需要返回给函数的调用者函数名()通过reurun实现的
只要函数遇到return就把后面的结果 返回给函数的调用者
function getResult() {
return 666;
}
getResult(); //getResult()=666
console.log(getResult());
1、求两个数的和
function getSum(num1, num2) {
return num1 + num2;
}
console.log(getSum(1, 2));
2、比较两个值的大小
function getMax(num1, num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}
console.log(getMax(1, 3));
3、比较两个值的大小(三元法)
function getMax(num1, num2) {
return num1 > num2 ? num1 : num2;
}
console.log(getMax(1, 3));
4、求一个数组的最大值
function getArrMax(arr) {
var max = arr[0];
for (var i = 1; i <= arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
var re = getArrMax([5, 2, 99, 101, 67, 77]);
console.log(re);
在实际开发中,我们经常用一个变量来 接收函数的返回结果
var re = getArrMax([5, 2, 99, 101, 67, 77]);
console.log(re);
5、利用函数同时求不同数组的最大值
function getMax() {
var max = arguments[0];
for (var i = 1; i <= arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i]
}
}
return max;
}
console.log(getMax(1, 2, 3));
console.log(getMax(1, 2, 3, 4, 5));
console.log(getMax(1, 2, 34, 444, 5, 100));
六、return
1、return为终止函数,后面的代码不会被执行
2.1、return只能返回一个值,如果输入多个值,以最后一个为准
2.2 如果要用return返回多个值,可以加上数组符号[ ]
function getResult(num1, num2) {
return [num1 + num2, num1 - num2, num1 * num2, num1 / num2];
}
console.log(getResult(4, 2));
3如果函数有return,则返回的是return后面的值;如果函数没有return,则返回undefined
七、break,continue,return的区别
break:结束当前的循环体
continue:跳出本次循环,继续执行下次循环
return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体中的代码
八、Arguments函数
8.1 它是当前函数的一个内置对象,里面存储了所有传递过来的实参。
8.2 它是一种伪数组,并不是真正意义上的数组,具有length属性
8.3 按照索引的方式进行存储的
8.4 它没有真正数组的一些方法:pop(),push()等
8.5 可以按照数组的方式遍历arguments
8.6 只有函数才有argements对象
九、封装函数
1、翻转函数
function reverse(arr) {
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i];
}
return newArr;
}
var arr1 = reverse([1, 3, 4, 6, 9]);
console.log(arr1);
2、冒泡函数
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
var arr1 = sort([1, 4, 2, 9]);
console.log(arr1);
3、判断闰年
function isRunYear(year) {
var flag = flase;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
console.log(isRunYear(2000));
4、函数的调用(判断闰年2月份有29天)
function backDay() {
var year = prompt('请您输入年份');
if (isRunYear(year)) { //调用函数要加小括号
alert('当前年份是闰年2月份有29天');
} else {
alert('当前年份是平年2月份有28天');
}
return backDay();
function isRunYear(year) {
var flag = flase;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
十、声明变量的两种方法
1、利用函数关键字自定义函数(命名函数)
function fn(){
}
fn();
2、函数表达式
var 变量名=function(){}
var fun=function(aru){
console.log('我是函数表达式')
}