XuTuring
2017-06-29 11:50:12浏览 3041
函数三要素
函数的功能 函数的参数 函数的返回值
函数的参数
形参--定义函数的时候,没有实际的值,给实参占位
实参--调用函数的时候,有实际的值
函数调用的时候,实参的个数可以不用和形参的个数相等
重载
//在其他语言中,有重载的概念
//重载:函数的名字相同,但是参数个数不同
//JavaScript中没有重载的概念
//下面的相同名称的函数会把上面的函数覆盖不要定义两个名词相同的函数
函数的返回值
如果return 后面跟内容了,返回return后面的内容
如果return后面没有跟内容,返回undefined,return后面的代码不会执行
如果函数内部没有写return,返回undefined
推荐的做法是要么让函数始终都返回一个值,要么永远都不要返回值。
函数内部可以调用其它函数
执行的过程:函数执行内部调用的函数的时候,会执行内部的函数,当内部的函数执行完毕,会继续执行当前的函数
函数练习
/**
* 求圆的面积
* @param r 圆的半径{number}
* @return 圆的面积{number}
*/
function getArea(r){
var r=r||0;
return Math.PI*Math.pow(r,2);
}
var area=getArea(5);
console.log(area)//78.53981633974483
/**
* 求两个数中的最大值
* @param a {number}
* @param b {number}
* @return a和b中最大值{number}
*/
function getMaxTwo(a,b){
var a=a||0;
var b=b||0;
return a>b?a:b;
}
getMaxTwo(8,3)//8
/**
* 求三个数中的最大值
* @param a {number}
* @param b {number}
* @param c {number}
* @return a b c中最大值{number}
*/
function getMaxTwo(a,b){
var a=a||0;
var b=b||0;
return a>b?a:b;
}
function getMaxThree(a,b,c){
return getMaxTwo(getMaxTwo(a,b),c)
}
getMaxThree(4,2,9)//9
/**
* 求一组数中的最大值
* @param array {Array}
* @return 数组中最大值{number}
*/
function getArrayMax(array){
var array = array || [];
//首先确保传进来的参数是数组 暂时不写
if(array.length==0){
return;
}
var max=array[0];
for(var i=1;i<array.length;i++){
max=array[i]>max?array[i]:max;
}
return max;
}
var arr=[12,32,87,3,4,5,3,7,9];
getArrayMax(arr)
/**
* 翻转数组,返回一个新数组
* @param array{Array}
* @returns 一个翻转的新数组{Array}
*/
function reverse(array){
var array = array||[];
if(array.length==0){
return "小样儿别和自个儿较真";
}
var newArray=[];
console.log(array.length)
for(var i=array.length-1;i>=0;i--){
newArray[newArray.length]=array[i];
}
return newArray;
}
var arr=['ddd',1,3,5,'v',9,0,3];
reverse(arr)
/**
* 对数组排序,从小到大
* @param array
* @returns {*}
*/
function sort(array){
var array = array||[];
if(array.length==0){
return "别难为自个儿";
}
for(var i=0;i<array.length-1;i++){//趟数
var isSort=true;//假设排序 ok
for(var j=0;j<array.length-1-i;j++){//两两比较
if(array[j]>array[j+1]){
isSort=false;//排序继续
var tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
}
if(isSort){
break;
}
}
return array;
}
var arr=[12, 34, 45, 56, 35, 67, 90, 1, 3, 7, 79];
sort(arr)//[1, 3, 7, 12, 34, 35, 45, 56, 67, 79, 90]