有没有像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!==null
和variable!==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'); }
这取决于你需要的情况,但让我分解每个部分的作用:
-
typeof(variable) !== "undefined"
检查variables是否被定义 -
variable !== null
检查variables是否为null(有些人显式设置为null,不认为是否设置为null,那是正确的,在这种情况下,删除这部分) -
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 }