有没有像javascript / jQuery中的isset的东西?

有没有在JavaScript / jQuery的东西来检查variables是否设置/可用或不? 在PHP中,我们使用isset($variable)来检查这样的事情。

谢谢。

试试这个expression式:

 typeof(variable) != "undefined" && variable !== null 

如果variables被定义,那么这将是真实的,而不是null,这相当于PHP的isset的工作方式。

你可以像这样使用它:

 if(typeof(variable) != "undefined" && variable !== null) { bla(); } 

JavaScript JS isset()在PHP JS上

 function isset () { // discuss at: http://phpjs.org/functions/isset // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + improved by: FremyCompany // + improved by: Onno Marsman // + improved by: Rafał Kukawski // * example 1: isset( undefined, true); // * returns 1: false // * example 2: isset( 'Kevin van Zonneveld' ); // * returns 2: true var a = arguments, l = a.length, i = 0, undef; if (l === 0) { throw new Error('Empty isset'); } while (i !== l) { if (a[i] === undef || a[i] === null) { return false; } i++; } return true; } 

typeof将符合我的想法

 if(typeof foo != "undefined"){} 

如果你想检查一个属性是否存在: hasOwnProperty是要走的路

而且由于大多数对象是一些其他对象的属性(最终导致window对象),这可以很好地检查是否已经声明了值。

不是自然而然的,不,但是,这个事情的谷歌search给了这个: http : //phpjs.org/functions/isset : 454

http://phpjs.org/functions/isset:454

phpjs项目是一个值得信赖的来源。 许多js等价的php函数可用。 我已经使用了很长时间,至今没有发现任何问题。

问题是将未定义的variables传递给函数会导致错误。

这意味着你必须在将它作为parameter passing之前运行typeof。

我发现最干净的方式是这样的:

 function isset(v){ if(v === 'undefined'){ return false; } return true; } 

用法:

 if(isset(typeof(varname))){ alert('is set'); } else { alert('not set'); } 

现在代码更加紧凑和可读。

如果你尝试从一个非实例化的variables中调用一个variables,那么这样做仍然会出错:

 isset(typeof(undefVar.subkey)) 

因此在尝试运行这个之前,你需要确保对象被定义:

 undefVar = isset(typeof(undefVar))?undefVar:{}; 

这里 :)

 function isSet(iVal){ return (iVal!=="" && iVal!=null && iVal!==undefined && typeof(iVal) != "undefined") ? 1 : 0; } // Returns 1 if set, 0 false 

除了@ emil-vikström的回答,检查variable!=null对于variable!==nullvariable!==undefined (或者typeof(variable)!="undefined" )是正确的。

这些答案的每个部分的一部分工作。 我将它们全部编译成一个函数“isset”,就像问题在PHP中一样。

 // isset helper function var isset = function(variable){ return typeof(variable) !== "undefined" && variable !== null && variable !== ''; } 

以下是如何使用它的用法示例:

 var example = 'this is an example'; if(isset(example)){ console.log('the example variable has a value set'); } 

这取决于你需要的情况,但让我分解每个部分的作用:

  1. typeof(variable) !== "undefined"检查variables是否被定义
  2. variable !== null检查variables是否为null(有些人显式设置为null,不认为是否设置为null,那是正确的,在这种情况下,删除这部分)
  3. variable !== ''检查variables是否设置为空string,如果空string计数为您的用例

希望这可以帮助别人:)

你可以:

 if(variable||variable===0){ //Yes it is set //do something } else { //No it is not set //Or its null //do something else }