首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript isset()等效项

JavaScript isset()等效项
EN

Stack Overflow用户
提问于 2010-02-17 22:54:36
回答 21查看 933.7K关注 0票数 614

在PHP中,你可以做if(isset($array['foo'])) { ... }。在JavaScript中,您经常使用if(array.foo) { ... }来做同样的事情,但这并不是完全相同的语句。如果array.foo确实存在,但为false0 (也可能是其他值),则该条件的计算结果也将为false。

在JavaScript中,什么是PHP的isset的完美等价物?

在更广泛的意义上,一个关于JavaScript处理不存在的变量、没有值的变量等的通用、完整的指南将是很方便的。

EN

回答 21

Stack Overflow用户

发布于 2010-02-17 22:59:43

代码语言:javascript
复制
if (!('foo' in obj)) {
  // not set.
}
票数 20
EN

Stack Overflow用户

发布于 2013-08-21 21:23:18

代码语言:javascript
复制
//
//  tring to reference non-existing variable throws ReferenceError 
//  before test function is even executed
//
//  example, if you do:
//    
//     if ( isset( someVar ) ) 
//        doStuff( someVar );
//   
//  you get a ReferenceError ( if there is no someVar... ) 
//  and isset fn doesn't get executed.
//
//  if you pass variable name as string, ex. isset( 'novar' );, 
//  this might work:
//
function isset ( strVariableName ) { 

    try { 
        eval( strVariableName );
    } catch( err ) { 
        if ( err instanceof ReferenceError ) 
           return false;
    }

    return true;

 } 
//
//
票数 8
EN

Stack Overflow用户

发布于 2014-06-22 00:33:59

这个简单的解决方案有效,但不适用于深度对象检查。

代码语言:javascript
复制
function isset(str) {
    return window[str] !== undefined;
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2281633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档