在javascript / jQuery中有类似于php的东西吗?

时间:2010-11-20 08:01:39

标签: javascript php jquery isset

javascript / jQuery中是否有东西可以检查变量是否设置/可用?在php中,我们使用isset($variable)来检查这样的内容。

感谢。

11 个答案:

答案 0 :(得分:130)

试试这个表达式:

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

如果变量已定义且不为null,则这将成立,这相当于PHP的设置工作方式。

你可以像这样使用它:

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

答案 1 :(得分:9)

JavaScript isset() on 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;
}

答案 2 :(得分:3)

typeof将达到我认为的目的

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

答案 3 :(得分:3)

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

由于大多数对象都是其他对象的属性(最终导致window对象),因此可以很好地检查是否已声明值。

答案 4 :(得分:2)

不自然,没有......然而,谷歌的搜索结果给出了这个:http://phpjs.org/functions/isset:454

答案 5 :(得分:2)

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

phpjs项目是值得信赖的来源。那里有很多js等效的php函数。我已经使用了很长时间,到目前为止没有发现任何问题。

答案 6 :(得分:1)

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

这意味着你必须先将typeof作为参数传递。

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

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

用法:

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

现在代码更紧凑,更易读。

如果您尝试从非实例化变量(例如:

)调用变量,则仍会出现错误
isset(typeof(undefVar.subkey))

因此在尝试运行之前,您需要确保定义了对象:

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

答案 7 :(得分:0)

这里:)

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

答案 8 :(得分:0)

@ emil-vikström的回答外,检查variable!=nullvariable!==null以及variable!==undefined(或{{ 1}})。

答案 9 :(得分:0)

每个答案的某些部分都有效。我将它们全部编译成一个函数“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"检查变量是否全部定义
  2. variable !== null检查变量是否为null(有些人显式设置为null,并且不认为它是否设置为null,那是正确的,在这种情况下,删除此部分)
  3. variable !== ''检查变量是否设置为空字符串,如果空字符串按用例设置,则可以删除此字符串
  4. 希望这有助于某人:)

答案 10 :(得分:-1)

你可以:

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