javaScript基础
arguments的使用
arguments对象是一个比较特殊的对象,实际上是当前函数的一个内置属性,也就是说所有的函数都内置了一个arguments对象.
arguments对象中存储了传递的所有实参,是一个伪数组.
- 求任意的最大值
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
var max = getMax(5, 10, 1, 5, 100);
console.log(max);
- 求任意个数的和
function getsum() {
var sum = arguments[0];
for (var i = 1; i < arguments.length; i++) {
sum = sum + arguments[i];
}
return sum;
}
console.log(getsum(5, 10, 13));
案例
- 求斐波那契数列Fibonacci中的第n个数是多少? 1 1 2 3 5 8 13 21…(不需要用arguments()
function getFib(n) {
// 函数体
var n1 = 1;
var n2 = 1;
var n3;
for (var i = 3; i <= n; i++) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
return n3;
}
var r = getFib(6);
console.log(r);
- 翻转数组,返回一个新数组(直接用reverse函数)
var arr = [0, 1, 2, 3, 4, 6]
var Newarr = arr.reverse();
console.log(Newarr);
- 对数组排序,从小到大
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b) {
return b - a; //这里应用到了比值函数
});
console.log(points);
注意: return a - b;可以这样理解,当 a- b 小于0时,返回值就为 a b;大于0时,返回值就为 b a;只要记住这是一个规则就行了,不用理解是怎么来的.
- 输入一个年份,判断是否是闰年[闰年:能被4整数并且不能被100整数,或者能被400整数]
方法一:
function year(n){
if(parseFloat(n/4) == parseInt(n/4)) {
if(parseFloat(n/100) != parseInt(n/100)) {
out = "这是闰年!";
}else{
out = "这不是闰年!";
}
}else {
out = "这不是闰年!"
}
console.log(out);
}
year(440);
方法二:
function isRun(year) {
var result = false;
if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {
result = true;
}
return result;
}
- 输入某年某月某日,判断这一天是这一年的第几天?
function time(a,b,c) {
e = 30 * b + c;
m = a + "年" + b + "月" + c + "日是" + a + "年的第" + e + "天."
console.log(m);
}
time(2022,7,24);
//具体每个月多少天没算进去