Javascript:在函数中放置if时,是否需要添加任何内容?

时间:2017-02-24 22:57:27

标签: javascript

我对JavaScript更“新”,并且想知道在函数中放置if时是否需要添加任何内容。这是我的代码。我希望能够使用一个函数来调用另一个警告页面的函数。

function Function() {
  var var1 = Math.floor((Math.random() * 10) + 1);
  document.getElementById("paragraph1").innerHTML = var1;
  Functions();
}

function Functions() {
  if (var1 == 1) {
    Question1();
  }
}

function Question1() {
  alert("works");
}

先谢谢!

2 个答案:

答案 0 :(得分:1)

您的问题不是if,而是范围可变。

使用var声明的变量是函数的本地变量,不能从其他函数访问它们。您应该将值作为参数传递给另一个函数。

function Function() {
  var var1 = Math.floor((Math.random() * 10) + 1);
  document.getElementById("paragraph1").innerHTML = var1;
  Functions(var1);
}

function Functions(var2) {
  if (var2 == 1) {
    Question1();
  }
}

function Question1() {
  alert("works");
}

答案 1 :(得分:0)

关于变量范围的快速教训:变量仅存在于

中定义的范围内

因此,在Functions的定义中,变量var2将是未定义的。

两种解决方案

  1. 通过参数传递变量,即在调用Functions时,通过Functions(var2)等参数传递var2,并捕获函数体内的值
  2. 全局定义var2,因此两个函数都可以看到该值。虽然,这通常被认为是不好的做法