我在基础知识上做了一些工作,遇到了这个问题,我凭直觉知道,但从未深入探讨过细节。我没有理由不深入了解 JavaScript 如何处理原语。
这是迄今为止最简单的例子。这里,即使我调用add3和remove1函数,myPointsvariable也不会更新。
let myPoints = 3; function add3(points) { points += 3; } function remove1(points) { points--; } add3(myPoints); remove1(myPoints); console.log(myPoints) // 3
以下是使这项工作得以实现的核心概念:
按值传递:
在 JavaScript 中,当您将原始值(如数字)传递给函数时,它们是按值传递的。这意味着创建值的副本并将其传递给函数,而不是原始变量本身。
功能范围:
函数内部定义的变量具有函数作用域,这意味着它们只能在该函数内访问。
返回值:
如果要在函数外部使用结果,JavaScript 中的函数需要显式返回一个值。
以下是 myPoints 没有变化的原因:
要解决这个问题,我有两个主要选择:
function add3(points) { return points + 3; } myPoints = add3(myPoints);
let myPoints = { value: 3 }; function add3(pointsObj) { pointsObj.value += 3; } add3(myPoints); console.log(myPoints.value); // Now it's 6
以上是基元、函数和 WTH 值不会更新的详细内容。更多信息请关注PHP中文网其他相关文章!