变量 returns undefined 不管它被设置成什么

Variable returns undefined no matter what it is set to

在这个函数中,我初始化变量allowDial(),然后定义它。

我对它的值有一些疑问,所以我在 offHook() 函数的末尾添加了一个 console.log。我之前定义它。无论我将 allowDial 设置为什么,它 returns 未定义 - 无论是数字、布尔值、字符串等

为什么 console.log 返回未定义?如果我不能 console.log 准确地报告它的值,我不知道如何让这个变量的实现工作。

相关代码如下:

var allowDial;
var availableNumbers = ["0", "911", "1 (847) 765-1008" , "867-5309", "1 (212) 456-1414", "555-1212", "555-5555"];
function numberSuggestion() {
    var randomNumber = Math.floor(Math.random() * (availableNumbers.length));
    var suggestedNumber = availableNumbers[randomNumber];
    document.getElementById("suggestion").innerHTML = "How about dialing <strong id='suggestedTelephoneNumber'>" + suggestedNumber + "</strong>? Don't like this number? Click the button above again!";
    }
var dialTone;
function offHook() {
    document.getElementById("WE2500").style.display = "none";
    document.getElementById("dialPad").style.display = "block";
    dialTone = new Audio('dialTone.m4a');
    dialTone.play();
    allowDial === true;
    console.log(allowDial);
}

您没有为 allowDial 分配任何值。 ===用于比较,不用于赋值。要分配一个值,您应该使用 allowDial = true;

您没有为 allowDial 分配任何值。

allowDial = true;

示例:

var tmp;
testVar(tmp);       // "is null"
tmp = null;
testVar(tmp);       // "is null""is definitive null"

testVar()

function testVar(variable) {
  if(variable == null) { 
    console.log("is null");
  } 

  if(variable === null) { 
    console.log("is definitive null");
  }
}