gpt4 book ai didi

javascript - 函数中的局部变量代替参数,更好地理解函数

转载 作者:行者123 更新时间:2023-12-03 01:05:18 29 4
gpt4 key购买 nike

在选择标题时遇到困难。我正在学习js,正在寻找提问的地方,大多数时候都很简单。 stackoverflow 是一个好地方吗?或者您可以推荐另一个地方(irc 或论坛)吗?

开始使用js中的函数。这些行给出:

function calculateTax(amount){
let result = amount * 0.08;
return result;
}
let tax = calculateTax(100);
console.log(tax);
<小时/>

我问自己为什么函数需要一个局部变量“result”,为什么不能使用参数:

function calculateTax(amount){
amount * 0.08;
return amount;
}
let tax = calculateTax(100);
console.log(tax);
<小时/>

我的猜测是因为参数是占位符或者是安全乘法和 0.08 所需的变量?我想我读到参数是变量,这是正确的吗?函数中的100也是参数吗?

我想我在这些事情上浪费了太多时间。我的问题是,我太好奇了。感谢您抽出时间。

最佳答案

假设 amount 是一个数字,则任一方法都有效。也就是说,在不必要的情况下重新分配参数通常被认为是有点代码味道 - 请参阅 no-param-reassign .

在您的原始代码中,amountresult 都是局部变量。 (是的,参数也是变量)

当然,声明新变量或重新分配amount的另一种方法是立即返回计算结果:

function calculateTax(amount) {
return amount * 0.08;
}
let tax = calculateTax(100);
console.log(tax);

基元是不可变的,因此更改函数内的amount 不会导致任何副作用。如果amount不是原语,那么您不得不担心更改它。例如,如果它是一个具有 value 属性的对象,那么如果您在函数内更改该属性,则传入的对象将会发生变化。举例说明:

function calculateTax(obj) {
obj.amount *= 0.08;
return obj.amount;
}

const item = { amount: 100 };
let tax = calculateTax(item);
console.log(tax);

// item was mutated inside the function:
console.log(item);

关于javascript - 函数中的局部变量代替参数,更好地理解函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52437977/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com