Heim > Artikel > Web-Frontend > So erkennen Sie Attribute in der Webentwicklung
Dieses Mal zeige ich Ihnen, wie Sie Attribute in der Webentwicklung erkennen. Was sind die Vorsichtsmaßnahmen für die Erkennung von Attributen in der Webentwicklung?
Das Szenario, in dem null (und undefiniert) verwendet wird, ist die Prüfung, ob eine Eigenschaft im Objekt vorhanden ist, wie zum Beispiel:
// 不好的写法:检测假值if (object[propertyName]) {}// 不好的写法:和null相比较if (object[propertyName] != null) {}// 不好的写法:和undefined比较if (object[propertyName] != undefined) {}
Jedes im obigen Code Urteil tatsächlich Überprüft den Wert des Attributs anhand des angegebenen Namens, anstatt zu beurteilen, ob das Attribut, auf das der angegebene Name zeigt, existiert, denn wenn der Attributwert ein falscher Wert ist, ist das Ergebnis falsch, z. B. 0, „ „(leerstring), false, null und undefiniert. Schließlich handelt es sich hierbei um Rechtswerte der Immobilie. Wenn das Attribut beispielsweise eine Zahl aufzeichnet, kann der Wert Null sein. In diesem Fall führt die erste Beurteilung im obigen Code zu einem Fehler. Analog dazu führen alle drei Beurteilungen zu Fehlern, wenn der Attributwert null oder undefiniert ist.
Der beste Weg, um festzustellen, ob ein Attribut vorhanden ist, ist die Verwendung des inOperators. Der in-Operator ermittelt lediglich, ob das Attribut vorhanden ist, und liest nicht den Wert des Attributs. Dadurch können die oben in diesem Abschnitt erwähnten mehrdeutigen Aussagen vermieden werden. Der in-Operator gibt true zurück, wenn die Eigenschaften des Instanzobjekts vorhanden sind oder wenn vom Prototyp des Objekts erbt. Zum Beispiel:
var object = { count: 0, related: null};// 好的写法if ("count" in object) { // 这里的代码会执行}// 不好的写法:检测假值if (object["count"]) { // 这里的代码不会执行}// 好的写法if ("related" in object) { // 这里的代码会执行}// 好的写法if (object["related"] != null) { // 这里的代码不会执行}
Wenn Sie nur prüfen möchten, ob eine bestimmte Eigenschaft des Instanzobjekts vorhanden ist, verwenden Sie die Methode hasOwnProperty(). Alle JS-Objekte, die von Object erben, verfügen über diese Methode, die „true“ zurückgibt, wenn diese Eigenschaft in der Instanz vorhanden ist (wenn diese Eigenschaft nur im Prototyp vorhanden ist, gibt sie „false“ zurück). Es ist zu beachten, dass in IE8 und früheren IE-Versionen das DOM-Objekt nicht von Object erbt und daher diese Methode nicht enthält. Mit anderen Worten: Sie sollten prüfen, ob das DOM-Objekt existiert, bevor Sie seine hasOwnProperty()-Methode aufrufen (wenn Sie bereits wissen, dass das Objekt kein DOM ist, können Sie diesen Schritt weglassen).
// 对于所有非DOM对象来说,这是好的写法if (object.hasOwnProperty("related")) { // 执行这里的代码}// 如果你不确定是否为DOM对象,则这样来写if ("hasOwnProperty" in object && object.hasOwnProperty("related")) { // 执行这里的代码}
Aufgrund der Situation von IE8 und früheren Versionen von IE verwende ich bei der Beurteilung, ob die Eigenschaften des Instanzobjekts vorhanden sind, lieber den in-Operator(, der nur zur Beurteilung der Instanzeigenschaften verwendet wird. ). Wann immer Sie die Existenz einer Eigenschaft überprüfen müssen, verwenden Sie den in-Operator oder hasOwnProperty(). Dadurch können viele Fehler vermieden werden.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So vermeiden Sie Nullvergleiche in der Webentwicklung
So erkennen Sie Arrays in der Webentwicklung
Das obige ist der detaillierte Inhalt vonSo erkennen Sie Attribute in der Webentwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!