存放函數內部全部的參數數組
arguments.length 記錄着所傳遞參數的個數函數
arguments 存放參數的形式相似於數組,可是arguments不是數組this
arguments 取出裏面存放的數據,經過下標,下標是從0開始的。arguments[0];spa
若是把arguments存放的數據所有取出,須要循環遍歷!!!code
1.查看arguments對象
function fn(){
console.log(arguments);
}
fn(2,2,3);
2.獲取參數個數索引
function fn(){
console.log(arguments.length);
}
fn(2,3,32,32);
3.取arguments裏面的值(索引,從0開始)token
function fn(){
console.log(arguments[3]);
}
fn(2,3,4,23);
1.定義一個加法功能,計算傳入的全部數字的和
function fn(){
var sum = 0;
//循環遍歷
for(i = 0 ; i < arguments.length ; i++){
sum += arguments[i];
}
return sum;
}
console.log(fn(1,2,3,4,4,5));
2.定義一個功能getMax,傳入任意個數字,返回最大值
function getMax(){
//假設arguments[0]最大
var maxNum = arguments[0];
for(i = 1 ; i < arguments.length ; i++){
if(maxNum < arguments[i]){
maxNum = arguments[i];
}
}
return maxNum;
}
console.log(getMax(3,4,24,534,2,2,4));
3.定義一個運算功能,參數爲(x,y),當傳入1個數字時,求x的階乘,若是傳入兩個數字,求x的y次方
function fn(x,y){
if(arguments.length == 1){
var product = 1;
for(i = 1 ; i <= x ; i++){
product *= i;
}
return product;
}
return (Math.pow(x,y));
}
//console.log(fn(2));
console.log(fn(3,2));
//思考1:
var a = 10;
function fn(){
console.log(a); //10
}
fn();
//思考2:
var a = 10;
function fn(){
var a = 20;
console.log(a); //20
}
fn();
//思考3:
var a = 10;
function fn(){
var a = 20;
console.log(a); //20
}
console.log(a); //10
fn();
//思考4:
function fn(){
var a = 10;
console.log(a); //10
}
fn();
console.log(a); //a is not defined;
//思考5:
var a = 10;
function fn(){
console.log(a); //變量提高了 undefined;
var a = 20;
console.log(a); //20
}
fn();
//執行過程
function fn(){
var a;
console.log(a); //undefined;
a = 20;
console.log(a); //20
}
//思考6
var a = 10;
function outerFn(){
console.log(a); //undefined;
var a = 20;
function innerFn(){
var a = 30;
console.log(a); //30
}
innerFn();
console.log(a); //20
}
outerFn();
console.log(a); //10
//執行過程:
var a = 10;
function outerFn(){
var a;
console.log(a); //undefined;
a = 20;
function innerFn(){
var a = 30;
console.log(a); //30
}
innerFn();
console.log(a); //20
}