行数就是封装可被重复执行调用的代码块;目的就是函数可能被大量的重复使用,
01,利用函数翻转一个数组或字符串:
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, 2, 3, 4, 5])
console.log(arr1);
02,计算任意数值的和
<script>
function sum(){
var result = 0;
for(var i = 0;i<arguments.length;i++){
result+=arguments[i];
}
return result;
}
window.onload = function(){
alert(sum(1,2,3,4,5,6,7,9));
}
</script>
03,求给定的任意值中的最大值
<script>
function Max(){
var maxValue = arguments[0];
for(var i=1; i<arguments.length; i++){
if(maxValue < arguments[i]){
maxValue = arguments[i];
}
}
console.log(arguments);
return maxValue;
}
console.log(Max(1,23,0,-1000,100,5,54)); // 100
</script>
04,可以用来实行函数的递归;
<script>
function factorial(n){
if (n <= 0){
return 1;
} else{
return n * arguments.callee(n-1);
// return n*factorial(n-1);函数本身的递归
}
}
alert(factorial(5)); // 120
</script>
05,封装冒泡排序
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; 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,5,2,3,4,6,8,7,9])
console.log(arr1);