Как проверить значение "undefined" в jQuery

Возможные Дубликаты:
обнаружение неопределенного свойства объекта в JavaScript
javascript undefined compare

Как мы можем добавить проверку для неопределенной переменной, например:

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

11 ответов


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

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

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

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


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

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

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


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

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

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

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

см. документ API jQuery jquery.типа https://api.jquery.com/jQuery.type/ то же самое.


вы можете использовать метод стенографии, чтобы проверить, является ли это undefined или null

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

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


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

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

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

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

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


Если у вас есть имена элемента, а не id, мы можем достичь неопределенной проверки всех текстовых элементов (например), как показано ниже, и заполнить их значением по умолчанию, скажем 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')
    }
  })

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

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

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);
    }
}

попробуйте это~ All type checker


Вы можете использовать два пути 1) if ( val == null ) 2) if ( val === undefine )