Cette fois, je vais vous montrer comment détecter les attributs en développement web. Quelles sont les précautions pour détecter les attributs en développement web. Voici des cas pratiques, jetons un coup d'œil. Le scénario dans lequel
utilise null (et non défini) est celui de la vérification si une propriété existe dans l'objet , telle que :
// 不好的写法:检测假值if (object[propertyName]) {}// 不好的写法:和null相比较if (object[propertyName] != null) {}// 不好的写法:和undefined比较if (object[propertyName] != undefined) {}
dans le code ci-dessus Chaque jugement vérifie en fait la valeur de l'attribut via le nom donné, plutôt que de juger si l'attribut pointé par le nom donné existe, car lorsque la valeur de l'attribut est une valeur fausse, le résultat sera faux, comme 0 , "" (vide chaîne ), false, null et indéfini. Après tout, ce sont des valeurs légales pour la propriété. Par exemple, si l'attribut enregistre un nombre, la valeur peut être zéro. Dans ce cas, le premier jugement dans le code ci-dessus provoquera une erreur. Par analogie, si la valeur de l'attribut est nulle ou indéfinie, les trois jugements provoqueront des erreurs.
La meilleure façon de déterminer si un attribut existe est d'utiliser l'opérateur in. L'opérateur in déterminera simplement si l'attribut existe, plutôt que de lire la valeur de l'attribut. Cela peut éviter les déclarations ambiguës mentionnées plus tôt dans cette section. L'opérateur in retournera true si les propriétés de l'objet instance existent, ou si hérite de du prototype de l'objet. Par exemple :
var object = { count: 0, related: null};// 好的写法if ("count" in object) { // 这里的代码会执行}// 不好的写法:检测假值if (object["count"]) { // 这里的代码不会执行}// 好的写法if ("related" in object) { // 这里的代码会执行}// 好的写法if (object["related"] != null) { // 这里的代码不会执行}
Si vous souhaitez uniquement vérifier si une certaine propriété de l'objet instance existe, utilisez la méthode hasOwnProperty(). Tous les objets JS qui héritent d'Object ont cette méthode, qui renvoie true si cette propriété existe dans l'instance (si cette propriété n'existe que dans le prototype, elle renvoie false). Il convient de noter que dans IE8 et les versions antérieures d'IE, l'objet DOM n'hérite pas d'Object, il n'inclut donc pas cette méthode. En d’autres termes, vous devez vérifier si l’objet DOM existe avant d’appeler sa méthode hasOwnProperty() (si vous savez déjà que l’objet n’est pas DOM, vous pouvez omettre cette étape).
// 对于所有非DOM对象来说,这是好的写法if (object.hasOwnProperty("related")) { // 执行这里的代码}// 如果你不确定是否为DOM对象,则这样来写if ("hasOwnProperty" in object && object.hasOwnProperty("related")) { // 执行这里的代码}
En raison de la situation d'IE8 et des versions antérieures d'IE, pour juger si les attributs de l'objet d'instance existent, je préfère utiliser l'opérateur in, qui n'est utilisé que pour juger les attributs d'instance. hasOwnProperty(). Chaque fois que vous devez vérifier l'existence d'une propriété, utilisez l'opérateur in ou hasOwnProperty(). Faire cela peut éviter de nombreux bugs.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Comment éviter les comparaisons nulles dans le développement Web
Comment détecter les tableaux dans le développement Web
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!