在JavaScript中将函数结果分配给变量
我正在学习JavaScript,希望了解这种行为 我正在研究以下代码: 函数multiNum(x,y){ 返回x*y } var-num=multiNum(3,4); document.write(num) 我试着自己打这个,这就是我想到的: 函数multiNum(x,y){ 返回x*y } 文件写入(多重数(3,4)) 我想我可以将在JavaScript中将函数结果分配给变量,javascript,function,variables,Javascript,Function,Variables,我正在学习JavaScript,希望了解这种行为 我正在研究以下代码: 函数multiNum(x,y){ 返回x*y } var-num=multiNum(3,4); document.write(num) 我试着自己打这个,这就是我想到的: 函数multiNum(x,y){ 返回x*y } 文件写入(多重数(3,4)) 我想我可以将multiNum(3,4)放入文档中。write()而不是生成另一个变量 因此,我必须创建另一个变量并将新变量放入document.write()?这只是一条规
multiNum(3,4)
放入文档中。write()
而不是生成另一个变量
因此,我必须创建另一个变量并将新变量放入
document.write()
?这只是一条规则吗?您的两个示例都是正确的,并且将产生相同的结果。这只是风格的问题
如果您希望代码更易于阅读,那么最好像第一个示例中那样将其分离出来
如果您希望代码的大小更小。那么第二个例子是最好的
把事情分开是最好的做法。您不必创建额外的变量,但很多时候它使代码更易于阅读和理解。他们说你的变量名通常应该描述它的内容,这样每个人,包括其他不知道代码的人,都可以对正在发生的事情有一个基本的了解
在您的示例中,不需要创建额外的变量,因为它是一个非常简单的代码段。不管怎样,我喜欢创建它们,只是为了保持这样做的节奏。但是这是你的选择。你对第二个解决方案所做的非常有效 通常,第一种方法只有在希望以后在脚本中使用
multiNum(3,4)
的计算值时才有用。这就是为什么要将它存储在一个单独的变量中,这样就不必再次计算值
如果您确信不再需要它,那么您以后作为
document.write(multiNum(3,4))
所做的是最好的方法。这是一个有趣的问题,为了充分理解它,研究它将是有益的。javascript中的赋值基本上如下所示
variable_name = expression
创建该变量时,将计算表达式
//so this
number = 3 * 5
//is the same as
number = 15
函数
可以使用表达式、文本(如字符串
或int
)或变量名来调用
// '|' means 'or'
function(expression | literal | variable)
如果将表达式传递给函数函数(表达式)
,则该表达式将首先求值,然后传递到函数中
// 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)
您不必创建变量。在大多数情况下,当变量名有意义时,它更容易阅读,并且避免了代码混乱。这里,你的例子很简单。但是想象一下有类似于a(b(c(42,c('x')))
。这更难阅读(哪个右括号对应于左括号?),将其分解为命名良好的变量将使所有内容更易于维护。因此,这最终会使代码更易于阅读和理解!非常感谢。此外,有时需要多次使用函数的结果。通常,将其保存在变量中比反复调用函数要好。识别基本技术问题并在解释器看到的逻辑中穿行,而不是简单地验证它是否正确,这是一件很好的工作。这对于未来的读者帮助他们理解JavaScript解释器如何解析表达式应该很有用。