JavaScript - 检查变量是否存在

use*_*401 5 javascript

我有一个名为index.js的JavaScript文件.此javascript文件提供与index.html关联的过程代码.我的index.html文件非常基础.它看起来如下:

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript" src="index.js"></script>
        <script type="text/javascript">
@if (ViewBag.IsGood()) {
  <text>
            INFORMATION = { version: '<%= version%>', timestamp: '<%= timestamp%>' };
  </text>
}
          runInit();
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在我的index.html.js文件中,我有以下内容

function runInit() {
  if (INFORMATION === undefined) {
    INFORMATION = { version: 'Unknown' };
  }

  // Keep going 
}
Run Code Online (Sandbox Code Playgroud)

如您所见,有时会设置信息.有时,它没有.设置信息时一切正常.如果未设置,则会收到错误消息"ReferenceError:找不到变量:INFORMATION".我对此感到困惑,因为我认为我正在检查该属性是否存在正确.显然,我不是.

在JavaScript中,如何确保变量存在?这是我最关心的问题.我不想重新安排我的代码.我真的想这样做.我觉得我做得对.但是,我仍然收到错误.

谢谢.

scr*_*rd3 9

您可以使用typeof运营商:

就像这样

typeof foo; //returns "undefined";
Run Code Online (Sandbox Code Playgroud)

所以要检查是否有东西未定义

if(typeof INFORMATION==="undefined"){
    INFORMATION={version:"Unknown"};
}
Run Code Online (Sandbox Code Playgroud)