Php isset () equivalent in javascript

I am looking for javascript equivalent of php function isset(). I tried the method described here in the equivalent JavaScript isset () , but an error occurs in firebug:

data.del is undefined                          //Firebug warning/error
 if(typeof data.del[0].node != 'undefined') { // codes in my js file

And in some cases

data is null                                  //Firebug warning/error
  if(typeof data.storyLine != 'undefined') { // codes in my js file

The logic seems to work, but I wonder why the error occurs?

Basically, I want to check if there is data.del[0].nodeeither data.storyLineisset or not?

+5
source share
3 answers

ECMAScript defines a method hasOwnPropertyfor checking whether an object has a property of a given name:

var foo = {'bar':'bar'}

alert( foo.hasOwnProperty( 'bar' ) ); //true
alert( foo.hasOwnProperty( 'baz' ) ); //false

EDIT: This does not fully answer your question.

It is possible that the property was set as undefined

foo.bar = undefined;

alert( foo.hasOwnProperty( 'bar' ) ); //still true

An important question: what is your truth table for?

In php:

type  | isset() | == true
------+---------+----------
null  | false   | false
false | true    | false
true  | true    | true
""    | true    | false
"a"   | true    | true
0     | true    | false
1     | true    | true

In JS:

type      | isset() | truthy
----------+---------+--------
NaN       | ?       | false
undefined | ?       | false
null      | false   | false
true      | true    | true
false     | true    | false
""        | true    | false
"a"       | true    | true
0         | true    | false
1         | true    | true
+4
source

isset() : , , , .

"undefined", , :

if (typeof data !== 'undefined' && data !== null)
+10

I think the best solution is to look at the php.js source code :

function isset () {
    // !No description available for isset. @php.js developers: Please update the function summary text file.
    // 
    // version: 1103.1210
    // 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;
}
+4
source

All Articles