NodeJS(最新)。

我有以下代码。为什么第一个IF语句无法按预期运行?该控件不会放入第一个IF语句中。

我在以下代码的第一行中看到有效的console.log输出,并期望第一个IF语句也执行其代码。但事实并非如此;第二条IF语句起作用。

  console.log("-- inside create IP() qData['osType'] is set to :: " + qData['osType'])
  //--
  if ( qData['osType'] == 'undefined' ) {
    console.log("1 -- setting qData['osType'] = Linux by default for now. This should happen automatically.")
    qData['osType'] = 'Linux'
    console.log("1 -- inside create IP() if-statement-qData['osType'] and qData['osType'] is set to :: "+qData['osType'])
  }
  if ( typeof qData['osType'] == 'undefined' ) {
    console.log("2 -- setting qData['osType'] = Linux by default for now. This should happen automatically.")
    qData['osType'] = 'Linux'
    console.log("2 -- inside create IP() if-statement-qData['osType'] and qData['osType'] is set to :: "+qData['osType'])
  }
  qData['osType'] = 'Linux'
  //--

最佳答案

如果要检查不确定性,可以执行以下操作之一:


typeof foo === 'undefined'
foo === undefined
foo === void 0


实际上,其他所有内容(严格地)都不会检查未定义的值(包括直接将值与字符串'undefined'比较)。

09-25 18:29