国产探花免费观看_亚洲丰满少妇自慰呻吟_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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉田县| 南投县| 无极县| 大宁县| 开远市| 彭州市| 保山市| 浦东新区| 余姚市| 北安市| 东台市| 漳浦县| 苍溪县| 蓬溪县| 得荣县| 东莞市| 广水市| 鹰潭市| 彩票| 壤塘县| 景东| 安康市| 武城县| 庆城县| 虎林市| 泉州市| 黔西县| 桑日县| 弥渡县| 凯里市| 莱芜市| 长宁县| 鱼台县| 拉孜县| 商河县| 武清区| 冷水江市| 壤塘县| 革吉县| 上林县| 军事|