Test if something is not undefined in JavaScript

前端 未结 11 1746
礼貌的吻别
礼貌的吻别 2020-11-30 19:50

I\'m checking if(response[0].title !== undefined), but I get the error:

Uncaught TypeError: Cannot read property \'title\' of undefined.<

相关标签:
11条回答
  • 2020-11-30 20:11

    In some of these answers there is a fundamental misunderstanding about how to use typeof.

    Incorrect

    if (typeof myVar === undefined) {
    

    Correct

    if (typeof myVar === 'undefined') {
    

    The reason is that typeof returns a string. Therefore, you should be checking that it returned the string "undefined" rather than undefined (not enclosed in quotation marks), which is itself one of JavaScript's primitive types. The typeof operator will never return a value of type undefined.


    Addendum

    Your code might technically work if you use the incorrect comparison, but probably not for the reason you think. There is no preexisting undefined variable in JavaScript - it's not some sort of magic keyword you can compare things to. You can actually create a variable called undefined and give it any value you like.

    let undefined = 42;
    

    And here is an example of how you can use this to prove the first method is incorrect:

    https://jsfiddle.net/p6zha5dm/

    0 讨论(0)
  • 2020-11-30 20:13

    I know i went here 7 months late, but I found this questions and it looks interesting. I tried this on my browser console.

    try{x,true}catch(e){false}
    

    If variable x is undefined, error is catched and it will be false, if not, it will return true. So you can use eval function to set the value to a variable

    var isxdefined = eval('try{x,true}catch(e){false}')
    
    0 讨论(0)
  • 2020-11-30 20:15

    response[0] is not defined, check if it is defined and then check for its property title.

    if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
        //Do something
    }
    
    0 讨论(0)
  • 2020-11-30 20:20

    It'll be because response[0] itself is undefined.

    0 讨论(0)
  • 2020-11-30 20:21

    Check if condition == null; It will resolve the problem

    0 讨论(0)
提交回复
热议问题