how to determine if variable is undefined
本问题已经有最佳答案,请猛点这里访问。
在另一个关于so的问题中,我决定如何关闭一个函数,工作解决方案是:
我将EDOCX1[0]放在页面的头部分,在调用shell.js之前,在shell.js中,我有:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /*******************************/ /* 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(); |
shell.js是与其他站点共享的通用文件,可能未定义变量。如何检查是否定义了变量,如果不将其赋给false,则执行上面的代码?
尝试
1 2 | if (typeof disabledFlag === 'undefined') disabledFlag = false; |
有比使用三元或
就您的特定功能而言,您可以这样做:
1 2 3 4 5 | var toggleBlock = function() { var disabledFlag = disabledFlag||false; if(!disabledFlag){ //etc. |
在许多不同的上下文中都使用了相同的概念。例如:
情景1
1 2 3 4 5 6 7 8 9 | var obj = {hello: 'world'}; function fn(object) { var object = object || {foo: 'bar'}; return object; } fn(obj) // ==> {hello: 'world'} |
情景2
1 2 3 4 5 6 7 | function fn(object) { var object = object || {foo: 'bar'}; return object; } fn(objectThatDoesntExist); // ==> {foo: 'bar'} |
在JavaScript库和模块模式项目中,这个概念经常以许多不同的方式使用。
你不需要
1 | if (window.disabledFlag === undefined) window.disabledFlag = false; |
您可以使用
1 2 3 | if(typeof neverDeclared =="undefined") //no errors if(neverDeclared == null) //throws ReferenceError: neverDeclared is not defined |
在这里查看更多关于