一道筆試題思考而來的,通常情況下沒人會在函數內部修改參數值。這里僅拿出來討論,有三種方式可以修改。
1,直接修改函數聲明時的形參
復制代碼 代碼如下:
function f1(a) { 
    alert(a); 
    a = 1;//修改形參a 
    alert(1 === a); 
    alert(1 === arguments[0]); 
} 
f1(10); 
2,通過函數內部的arguments對象修改
復制代碼 代碼如下:
function f2(a) { 
    alert(a); 
    arguments[0] = 1;//修改arguments 
    alert(1 === a); 
    alert(1 === arguments[0]); 
} 
3,函數內部聲明的局部變量與形參同名
復制代碼 代碼如下:
function f3(a) { 
    alert(a); 
    var a = 1;//聲明局部變量a且賦值為1 
    alert(1 === a); 
    alert(arguments[0]); 
} 
f3(10);
4,如果只是聲明局部變量a,卻不賦值,情況又不一樣了
復制代碼 代碼如下:
function f3(a) { 
    var a;//僅聲明,不賦值 
    alert(a); 
    alert(arguments[0]); 
} 
f3(10); 
新聞熱點
疑難解答
圖片精選