不能在函数内使用全局变量

时间:2017-03-11 20:25:50

标签: javascript

所以,我刚刚创建了这个简单的函数,它将两个给定的数字相乘:

function multiply() {
    var firstNumber = document.getElementById('insert1').value;
    var secondNumber = document.getElementById('insert2').value;
    document.getElementById('result').innerHTML = firstNumber * secondNumber;
}

我尝试在全局范围内声明函数外的两个变量,因此我可以在下一个函数中重用它,这将分割这些数字,这样可以缩短代码。但它不起作用。

任何人都可以解释我为什么吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

看起来效果很好。 (您提供的代码实际上没有任何全局变量。您提到了一些其他函数但不提供代码。)

function multiply () {
  var firstNumber = document.getElementById('insert1').value;
  var secondNumber = document.getElementById('insert2').value;

  document.getElementById('result').innerHTML = firstNumber * secondNumber;
}
<input id="insert1"><br>
<input id="insert2"><br>
<button type="button" onclick="multiply()">clicky</button>
<div id="result"></div>

答案 1 :(得分:0)

你可以直接使用global var inside函数,只要你没有声明另一个具有相同名称的函数:

myVar =1;
function byTwo(){
    return myVar*2;
}

答案 2 :(得分:0)

&#13;
&#13;
var firstNumber;
var secondNumber;

function multiply() {

  firstNumber = document.getElementById('insert1').value;
  secondNumber = document.getElementById('insert2').value;
  document.getElementById('result').innerHTML = firstNumber * secondNumber;
  divideExample();
}


function divideExample() {

  //using globals variables
  document.getElementById('result').innerHTML = firstNumber / secondNumber;

}
&#13;
<input id="insert1"><br>
<input id="insert2"><br>
<button type="button" onclick="multiply()">click me</button>
<div id="result"></div>
&#13;
&#13;
&#13;