相关疑难解决方法(0)

如何区分未声明的变量和声明但未赋值的变量?

两种情况下,变量的类型都将是"未定义的".但未声明的变量会引发异常.

有一个简单的方法来处理这个?

javascript

6
推荐指数
1
解决办法
983
查看次数

如何确定变量是否未定义

在关于SO的另一个问题中,我正在确定如何切换一个函数,工作解决方案是这样的:

我放在var disabledFlag = true;我的页面的head部分,在调用shell.js之前,然后在shell.js中我有:

/*******************************/
/*  TOGGLE BUTTON
/*******************************/
var toggleBlock = function() {
    console.log(disabledFlag);
    if(!disabledFlag){
      var windowsize = $(window).width(),
      isDesktop = windowsize > 765;
      $("#quicksearch").toggleClass("collapse in", isDesktop);
      $("#quicksearch").toggleClass("collapse out", !isDesktop);
      $("#sidebar").toggleClass("collapse in", isDesktop);
      $("#sidebar").toggleClass("collapse out", !isDesktop);
    }
    else {
      $("#quicksearch").addClass("collapse out");
      $("#sidebar").addClass("collapse out");  
    }
}
$(document).ready(toggleBlock);
$(window).on("resize.showContent", toggleBlock);
toggleBlock();
Run Code Online (Sandbox Code Playgroud)

shell.js是与其他站点共享的公共文件,可能没有定义变量.如何检查变量是否已定义,如果不将其赋值为false,然后执行上面的代码?

javascript jquery

6
推荐指数
2
解决办法
3165
查看次数

如何检查javascript中的undefined?

可能重复:
在JavaScript中检查"未定义"的最佳方法是什么?

我想做一个if语句,如果没有定义该值,那么让它通过.

我试过了

if (something != "undefined")
Run Code Online (Sandbox Code Playgroud)

if (something !== "undefined")
Run Code Online (Sandbox Code Playgroud)

然而,if无论如何,似乎都会进入声明.如果它未定义则会通过.如果定义了它就会通过.难道我做错了什么?

javascript

5
推荐指数
0
解决办法
2010
查看次数

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

谢谢.

javascript

5
推荐指数
1
解决办法
5509
查看次数

这是什么意思:if(variable){/*做某事*/}

标题是我的问题;

这是什么意思:

if( variable ){ /* do something */  }
Run Code Online (Sandbox Code Playgroud)

我的意思是,如果变量存在做某事或什么?

javascript if-statement

4
推荐指数
1
解决办法
6077
查看次数

javascript:如何检查属性是未定义的

我的代码如下.

elem.onkeypress=function(e){
 if( (e.which===undefined?e.keyCode:e.which)==13 ){
   //dosomething
  }
}
Run Code Online (Sandbox Code Playgroud)

在IE8,它发现了错误: 'which' is null or not an object

如何解决这个问题.

javascript

3
推荐指数
1
解决办法
1236
查看次数

为什么if(undefined)评估为true?

我是JavaScript的新手,并且遇到了一个看似明显的问题.

const item = sessionStorage.getItem('item'); // undefined
if (item) {
    return item;
}
Run Code Online (Sandbox Code Playgroud)

在Chrome调试器中,我可以看到该项目是未定义的.我希望条件失败.令我惊讶的是,它正在评估为真.

我以为我已经测试了这个.为什么它会在有条件的情况下回归?

我遇到过其他检查,例如如何在JavaScript中检查"未定义"所推荐的检查?.但是......为什么我要为这样一个简单的检查做一些甚至远程"复杂"的事情呢?上面的方法看起来如此简单和优雅,我不愿意失去它.

我也在https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage上的示例中看到了这种方法.

javascript undefined

3
推荐指数
1
解决办法
53
查看次数

JavaScript - 检查的最佳做法是功能

我在调用之前看到了很多种用于检查回调函数的方法.

1)

 function(callBack)    
      {    
           ...
           if(callBack != null)
              callBack();   
      }      
Run Code Online (Sandbox Code Playgroud)

2)

  function(callBack)    
          {    
               ...
               if(typeof callBack == 'function')
                  callBack();   
          }  
Run Code Online (Sandbox Code Playgroud)

3)

  function(callBack)    
          {    
               ...
               if(callBack !== null)
                  callBack();   
          } 
Run Code Online (Sandbox Code Playgroud)

4)

  function(callBack)    
          {    
               ...
               if(callBack != undefined)
                  callBack();   
          }
Run Code Online (Sandbox Code Playgroud)

5)

   function(callBack)    
          {    
               ...
               try{    
                  callBack();  
                  } catch(err) {}

          }
Run Code Online (Sandbox Code Playgroud)

6)

   function(callBack)    
          {    
               ...
                if (callBack && typeof(callBack) == "function")
                  callBack();   

          }
Run Code Online (Sandbox Code Playgroud)

7)

    function(callBack)    
          {    
               ...
                if(callBack)
                  callBack();   

          }
Run Code Online (Sandbox Code Playgroud)

8)

    function(callBack)    
              {    
                   ...
                    if(typeof window[callBack] === 'undefined')
                      callBack();   

              }
Run Code Online (Sandbox Code Playgroud)

9)

  function(callBack)    
              { …
Run Code Online (Sandbox Code Playgroud)

javascript callback

1
推荐指数
1
解决办法
3702
查看次数

Javascript如果未定义不起作用

我正在使用三元表达式来检查变量是否存在以相应地显示值,但是因为,我需要检查它是否存在并且其中有一些值,它在未定义变量时检查条件时失败.我该如何解决这个问题?

这是代码:

$('#select').selectize({
    items: typeof icoop != "undefined" && icoop != null ||  icoop.selectedUsers.length < 1 ? icoop.selectedUsers : []
});
Run Code Online (Sandbox Code Playgroud)

我明白了:

未捕获的ReferenceError:未定义icoop

javascript

1
推荐指数
1
解决办法
100
查看次数

标签 统计

javascript ×9

callback ×1

if-statement ×1

jquery ×1

undefined ×1