方法/函数的调用语句是否保持其返回值类似于变量名称如何保存值?
例如:
function Jump(height) {
return height * 2;
}
Jump(3); //Is the call statement 'Jump(3)' equal the return value of 6 similar to
var x = 3; //how the variable 'x' is equal to the value of 3?
编辑:我通过命名变量并使用相同的名称给出了错误的印象。在理解如何保存返回值时,我纯粹使用变量作为比较。我下次会更好地说出/构建我的问题。
答案 0 :(得分:6)
函数和变量共享相同的命名空间。你定义了函数Jump
,然后调用它(但实际上没有分配函数的结果(返回的内容)),所以它返回6但是你实际上并没有将它存储在任何地方。然后通过将其重新定义为具有相同名称的变量来覆盖您的函数,并将其赋值为3
答案 1 :(得分:0)
关于表达式
在您进行修改后,您似乎在询问expressions
。
expression
基本上是一个value
的代码段。在您的示例中,Jump(3)
和var x = 3
都是表达式,因为它们都有值。换句话说,Jump(3)
是一个值为6
的表达式,(x=3)
实际上是一个计算结果为3
的表达式。
两者之间的唯一区别是第一个表达式还为assignment operator
分配值(即=
),而第二个表达式“只是”一个值。就此而言,在您的示例中,变量x
也是一个计算结果为3
的表达式。
有关此主题的更多信息,请参阅MDN - Expressions and operators in Javascript
更多要点
这意味着当您将参数传递给函数by-value时,您实际上是传递了表达式的值。因此,在您的示例中,Jump(x)
,Jump(3)
,Jump((x=3))
和Jump(Jump(1.5))
都将评估为6
。
当然,将常用操作的值存储在一个快速计算为表达式的变量中,而不是每次计算表达式时都要完成计算,这样做成本要低得多。