arguments使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// arguments 只有函数才有 argument 对象 且每个函数都内置好了这个arguments
// 当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上
// 它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
function fn() {
// console.log(arguments); //里面存了所以的实参
// console.log(arguments.length);
// console.log(arguments[1]);
// 按照数组的方式遍历arguments
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5);
// 伪数组 并不是真正意义上的数组
// 1. 具有数组的 length 属性
// 2. 按照索引的方式进行存储
// 3. 他没有真正数组的一些方法 pop() pushs() 等等
</script>
</body>
</html>
函数求任意个数的最大值(arguments)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(1, 2, 3));
console.log(getMax(1, 2, 3, 4, 5));
console.log(getMax(12, 23, 34, 45, 56));
</script>
</body>
</html>
函数封装翻转任意一个数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
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, 5, 7, 9]);
console.log(arr1);
var arr2 = reverse(['red', 'green', 'blue']);
console.log(arr2);
</script>
</body>
</html>
函数冒泡排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function sort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 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, 5, 2, 7]);
console.log(arr1);
</script>
</body>
</html>
判断闰年
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function isRunYear(year) {
var flag = false;
if (parseFloat.year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
console.log(isRunYear(2000));
console.log(isRunYear(1997));
</script>
</body>
</html>
函数可以相互调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function fn1() {
console.log(11);
fn2(); //调用 fn2() 函数
}
fn1();
function fn2() {
console.log(22);
}
function fn3() {
console.log(111);
fn4();
console.log('fn1');
}
function fn4() {
console.log(222);
console.log('fn2');
}
fn3();
</script>
</body>
</html>
输出2月份的天数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function backDay() {
var year = prompt("please intput year:");
if (isRunYear(year)) { //调用函数需要加小括号
alert("It is leap year that has 29 days");
} else {
alert("It isn't leap year that has 28 days");
}
}
backDay();
// 判断闰年的函数
function isRunYear(year) {
var flag = false;
if (parseFloat.year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
</script>
</body>
</html>
函数的2种声明方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1. 用函数关键词自定义函数(命名函数)
function fn() {
}
fn();
// 2. 函数表达式
var 变量名 = function() {}; //var num = 10;
var fun = function(aru) {
console.log('我是函数表达式');
console.log(aru);
}
fun('pink老师');
// (1) fun是变量名 不是函数名
// (2) 函数表达式声明方式跟声明变量差不多,只不过变量里存的是值,函数表达式存的是函数
// (3) 函数表达式也可以进行传递参数
</script>
</body>
</html>