国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談JavaScript函數參數的可修改性問題

2019-11-20 21:31:12
字體:
來源:轉載
供稿:網友

一道筆試題思考而來的,通常情況下沒人會在函數內部修改參數值。這里僅拿出來討論,有三種方式可以修改。

1,直接修改函數聲明時的形參

復制代碼 代碼如下:

function f1(a) {
    alert(a);
    a = 1;//修改形參a
    alert(1 === a);
    alert(1 === arguments[0]);
}
f1(10);

函數f1定義了參數a,調用時傳參數10,先彈出10,修改a為1,彈出兩次true,a和arguments[0]都為1了。

2,通過函數內部的arguments對象修改

復制代碼 代碼如下:

function f2(a) {
    alert(a);
    arguments[0] = 1;//修改arguments
    alert(1 === a);
    alert(1 === arguments[0]);

}

效果同函數f1。

3,函數內部聲明的局部變量與形參同名

復制代碼 代碼如下:

function f3(a) {
    alert(a);
    var a = 1;//聲明局部變量a且賦值為1
    alert(1 === a);
    alert(arguments[0]);
}
f3(10);

函數f3定義了形參a,函數內部聲明局部變量a同時賦值為1,但這里的a仍然是參數a,從最后彈出的arguments[0]被修改為1可以證明。

4,如果只是聲明局部變量a,卻不賦值,情況又不一樣了

復制代碼 代碼如下:

function f3(a) {
    var a;//僅聲明,不賦值
    alert(a);
    alert(arguments[0]);
}
f3(10);

這時候彈出的都是10,而不是undefined。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌平区| 金坛市| 措勤县| 金阳县| 大兴区| 富顺县| 天等县| 隆安县| 梅河口市| 三明市| 喜德县| 景泰县| 涿鹿县| 周宁县| 镇平县| 诸城市| 砀山县| 揭西县| 石城县| 扬州市| 南涧| 水富县| 郸城县| 石景山区| 潼南县| 故城县| 云和县| 繁昌县| 沛县| 海林市| 长宁县| 沙雅县| 敖汉旗| 双牌县| 平度市| 山东省| 新安县| 郴州市| 岗巴县| 大港区| 常山县|