3 回答

TA貢獻1817條經驗 獲得超6個贊
第一個代碼片段創建一個局部變量number作為函數參數,它隱藏同名的外部變量。
由于 JavaScript 是按值傳遞的,因此新變量會被賦予 value 100。由于變量的作用域為函數change,因此當您更新賦值時,函數作用域中定義的變量也會更新。
let number = 100
function change(number) {
//This is the variable scoped to the function
number = number * 10;
}
//This is the variable defined in the global scope
change(number);
console.log(number);
在第二個片段中,您直接更新number函數外部的定義change,因此您會看到更新的值。

TA貢獻1797條經驗 獲得超6個贊
在第一個代碼片段中,參數隱藏了變量number- 它創建了一個名為的變量,number該變量是函數的本地變量,然后更新它。
在第二個片段中,甚至沒有使用參數,而是number直接更新變量。您可以編寫不帶參數的相同函數:
let number = 100
function change() { // No parameter!
number = number * 10;
}
change();
console.log(number);
添加回答
舉報