js 中的 arguments 对象

//读
function myFunc(a,b){
    var sum = arguments[0] + arguments[1];
    console.log(sum);
}
myFunc(1,2)
//写
function myFunc(a,b){
    arguments[0] = "reddd";
    console.log(a);
}
myFunc(1,2)

但是可以通过arguments创建真数组:

function abc(){
    var args = Array.prototype.slice.call(arguments);
    console.log(args);
}
abc(1,2,3,4)

在ES2015中可以这样写:

function abc(){
    // var args = Array.from(arguments);
    let args = [...arguments];
    console.log(args);
}
abc(1,2,3,4)


利用arguments制作一个返回数组中长度最长元素字符串的函数:

function longestString(arg0,arg1){
    var longest = '';
    for(var i=0; i<arguments.length; i++){
        if(arguments[i].length > longest.length){
            longest = arguments[i];
        }
    }
    return longest;
}
var longestInstance = longestString("a","ab","abc");
console.log(longestInstance);


利用arguments求解数组最大值:
 

function maxString(){
    // console.log(arguments);
    // console.log(arguments.length);
    var maxStr = '';
    for(var i=0; i<arguments.length - 1; i++){
        if(arguments[i+1] > arguments[i]){
            maxStr = arguments[i+1]
        }
    }
    return maxStr;
}
var max = maxString(2,33,444);
console.log(max);


使用for of方法,求解最大值:
 

function maxString(){
    // console.log(arguments);
    var maxStr = arguments[0];
    for(val of arguments){
        if( val >= maxStr){
            maxStr = val;
        }
        console.log(val);//2/33/444/234/2234234
    }
    return maxStr;
}
var max = maxString(2,33,444,234,234234);
console.log(max);