Ответ 1

Библиотека JQuery была разработана специально для упрощения и унификации определенных функций JavaScript.

Однако, если вам нужно проверить переменную на значение undefined, нет необходимости изобретать какой-либо специальный метод, поскольку JavaScript имеет оператор typeof, который является простым, быстрым и кросс-платформенным:

if (typeof value === "undefined") {
    // ...
}

Он возвращает строку, указывающую тип переменной или другой неоцененный операнд. Основное преимущество этого метода, по сравнению с if (value === undefined) { ... }, заключается в том, что typeof никогда не вызовет исключения в случае, если переменная value не существует.

Ответ 2

В этом случае вы можете использовать сравнение === undefined: if(val === undefined)

Это работает, потому что val всегда существует (это аргумент функции).

Если вы хотите проверить произвольную переменную, которая не является аргументом, т.е. вообще не может быть определена, вам нужно будет использовать if(typeof val === 'undefined'), чтобы избежать исключения в случае, если val не существует.

Ответ 3

Обратите внимание, что typeof всегда возвращает строку и не генерирует ошибку, если переменная вообще не существует.

function A(val){
  if(typeof(val)  === "undefined") 
    //do this
  else
   //do this
}

Ответ 4

Я знаю, что опаздываю, чтобы ответить на функцию, но jquery имеет встроенную функцию для этого.

if(jQuery.type(val) === "undefined"){
    //Some code goes here
}

Обратитесь к документу jquery API jquery.type https://api.jquery.com/jQuery.type/ для него.

Ответ 5

Вы можете использовать сокращенную технику, чтобы проверить, есть ли она undefined или null

 function A(val)
 {
   if(val || "") 
   //do this
 else
 //do this
 }

надеюсь, что это поможет вам

Ответ 6

когда я тестирую "typeof obj === undefined", alert(typeof obj) возвращает object, хотя obj - undefined. Поскольку obj является типом object его возвращающим object, а не undefined.

Итак, после нескольких часов тестирования я выбрал ниже технику.

if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}

Я не уверен, почему первый метод не работал. Но я делаю свою работу, используя это.

Ответ 7

Если у вас есть имена элемента, а не id, мы можем выполнить проверку undefined на всех текстовых элементах (например), как показано ниже, и заполнить их значением по умолчанию, например 0.0:

var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr'];
 jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) {
   var $_oField = jQuery("input[name='"+sShowKey+"']");
   if($_oField.val().trim().length === 0){
       $_oField.val('0.0')
    }
  })

Ответ 8

Я не уверен, что это лучшее решение, но оно отлично работает:

if($someObject['length']!=0){
    //do someting
}

Ответ 9

function isValue(value, def, is_return) {
    if ( $.type(value) == 'null'
        || $.type(value) == 'undefined'
        || $.trim(value) == ''
        || ($.type(value) == 'number' && !$.isNumeric(value))
        || ($.type(value) == 'array' && value.length == 0)
        || ($.type(value) == 'object' && $.isEmptyObject(value)) ) {
        return ($.type(def) != 'undefined') ? def : false;
    } else {
        return ($.type(is_return) == 'boolean' && is_return === true ? value : true);
    }
}

попробуйте эту проверку всех типов