Duplicate possible:
Détection d'une propriété d'objet non définie en JavaScript
javascript undefined compare
Comment pouvons-nous ajouter une vérification pour une variable non définie, comme:
function A(val) {
if (val == undefined)
// do this
else
// do this
}
La bibliothèque JQuery a été développée spécifiquement pour simplifier et unifier certaines fonctionnalités JavaScript.
Toutefois, si vous devez comparer une variable à la valeur undefined
, il n’est pas nécessaire d’inventer une méthode spéciale, car JavaScript possède un opérateur typeof
, qui est simple, rapide et multiplate-forme:
if (typeof value === "undefined") {
// ...
}
Il renvoie une chaîne indiquant le type de la variable ou un autre opérande non évalué. Le principal avantage de cette méthode, par rapport à if (value === undefined) { ... }
, est que typeof
ne déclenchera jamais d’exception si la variable value
n’existe pas.
Dans ce cas, vous pouvez utiliser une comparaison === undefined
: if(val === undefined)
Cela fonctionne parce que val
toujours existe (c'est un argument de fonction).
Si vous souhaitez tester une variable arbitraire qui n’est pas un argument, c’est-à-dire qui pourrait ne pas être définie du tout, vous devrez utiliser if(typeof val === 'undefined')
pour éviter une exception si val
n’existait pas.
Notez que typeof renvoie toujours une chaîne et ne génère pas d'erreur si la variable n'existe pas du tout.
function A(val){
if(typeof(val) === "undefined")
//do this
else
//do this
}
Je sais que je suis en retard pour répondre à la fonction mais jquery a une fonction de construction pour le faire
if(jQuery.type(val) === "undefined"){
//Some code goes here
}
Reportez-vous au document API jquery de jquery.type https://api.jquery.com/jQuery.type/ pour la même chose.
Vous pouvez utiliser une technique abrégée pour vérifier si elle est indéfinie ou nulle.
function A(val)
{
if(val || "")
//do this
else
//do this
}
j'espère que cela vous aidera
if (value === undefined) {
// ...
}
lorsque je teste "typeof obj === undefined
", la alert(typeof obj)
renvoie object
, même si obj est indéfini. Puisque obj est un type de Object
son retournant Object
, pas undefined
.
Donc, après des heures de test, j'ai opté pour la technique ci-dessous.
if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}
Je ne suis pas sûr de savoir pourquoi la première technique n'a pas fonctionné.
Je ne suis pas sûr que ce soit la meilleure solution, mais cela fonctionne bien:
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);
}
}
essayez ce ~ tous les types
Vous pouvez utiliser deux sens 1) if ( val == null )
2) if ( val === undefine )
Si vous avez le nom de l'élément et non l'id, nous pouvons effectuer la vérification non définie de tous les éléments de texte (par exemple) comme indiqué ci-dessous et les renseigner avec une valeur par défaut, par exemple 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')
}
})