Вопрос по jquery, javascript – Как проверить «неопределенное» значение в jQuery

152

Possible Duplicate:
Detecting an undefined object property in JavaScript
javascript undefined compare

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

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

Ваш Ответ

11   ответов
341

ии определенных функций JavaScript.

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

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

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

@ Alberici("#myId") это не что иное, как Строка константа. Он всегда будет определяться и иметь тип"string". Если вы имеете в виду фактическийjQuery объект создано с помощью$("#myId"), он всегда будет определяться как"object" (если вы правильно связали jQuery). Наличие элемента DOM с идентификаторомmyId можно оценить с помощьюif ($("#myId").length > 0) { ... }, а проверить, не является ли его значение пустым, можно с помощьюif ($("#myId").val()) { ... }. Ни один из этих пунктов на самом деле не относится к теме этого вопроса. VisioN
Это не работает с jquery Hast
@ nahum jQuery - это библиотека JavaScript. Это не другой язык программирования. VisioN
LOL Боже мой, вы действительно это комментируете? Я знаю, это тот же человек. Но я думаю, он хочет знать, существует ли какой-нибудь метод в jQuery, например $ .isUndefined (Object); и вернуть значение true или false. typeof - это просто JavaScript без какой-либо основы. ncubica
@ user3284463 Как уже упоминалось в ответе, простоvalue === undefined выдаст исключение, еслиvalue переменная не существует. Так что вам решать, что использовать в реальной жизни. VisioN
25

=== undefined сравнение:if(val === undefined)

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

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

14

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

function A(val){
  if(typeof(val)  === "undefined") 
    //do this
  else
   //do this
}
Для сравнения строк, я думаю, нам нужно использовать=== вместо того== Sreeram
@ Sreeram они оба сравнивают, просто по-разному ... это будет хорошо работать RGB
2

чтобы проверить, является ли она неопределенной или нулевой

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

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

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

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

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

Ссылка на jquery API документ jquery.typehttps: //api.jquery.com/jQuery.type для того же

1

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

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

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

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

0

а не 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')
    }
  })
0

if($someObject['length']!=0){
    //do someting
}
0
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);
    }
}

0

if ( val == null ) 2)if ( val === undefine )

Похожие вопросы