我正在学习JavaScript,并且想了解这种行为。
我正在研究以下代码:
function multiNum(x,y){
return x*y
}
var num = multiNum(3,4);
document.write(num)
我试图自己输入此字,这就是我想出的:
function multiNum(x,y){
return x*y
}
document.write(multiNum(3,4))
我以为我可以将multiNum(3,4)
放到document.write()
中,而不用创建另一个变量。
那么,我是否必须创建另一个变量并将新变量放入document.write()
中只是一个规则?
答案 0 :(得分:1)
您的示例都是正确的,并且将产生相同的结果。只是样式问题。
如果您希望代码更易于阅读,那么最好像第一个示例那样将其分开。
如果您希望代码的大小较小。那么第二个例子是最好的。
最好把事情分开。
答案 1 :(得分:1)
您不必创建额外的变量,但是在很多情况下,它使代码更易于阅读和理解。他们说您的变量名通常应描述其内容,这样每个人,包括不知道代码的其他人,都可以对发生的事情有基本的了解。
在您的示例中,由于它是一个非常简单的代码段,因此并不需要太多创建额外的变量。无论如何,我还是喜欢创建它们,只是为了保持节奏。但这是您的选择。
答案 2 :(得分:1)
这是一个有趣的问题,为了充分理解它,深入研究javascript expressions是有益的。基本上,JavaScript中的分配看起来像
variable_name = expression
创建variable
时,expression
会被评估
//so this
number = 3 * 5
//is the same as
number = 15
Functions
可以用表达式,文字(如string
或int
)或变量名来调用
// '|' means 'or'
function(expression | literal | variable)
如果将表达式传递给函数function(expression)
,则首先对expression
求值,然后将其传递给函数。
// so
function(3*5)
//is the same as
function(15)
函数调用也是如此。如果一个函数在另一个函数内部被调用,则首先对其求值,结果是外部函数参数。
让我们看看这个例子
function increment(number){
return number + 1
}
n = 1
document.write(increment(n))
首先使用参数document.write
调用increment(n)
和n = 1
//so
increment(n) = increment(1) = 2
//following me? now we can see that
document.write(increment(n))
//is the same as
document.write(2)
//!!
希望对您有帮助!
编辑:
将其带回您的示例
function multiNum(x,y){
return x*y
}
var num = multiNum(3,4) // num = 12
//so
document.write(num)
//is the same as
document.write(12)
答案 3 :(得分:0)
您对第二种解决方案所做的工作非常有效。
通常,只有在希望稍后在脚本中使用multiNum(3,4)
的计算值时,第一种方法才有用。因此,您将其存储在单独的变量中,从而不必再次计算该值。
如果您确定不再需要它,那么以后做的document.write(multiNum(3,4))
是最好的选择。