


Implementieren Sie die Zusammensetzung von JavaScript (detaillierte Interpretation von BOM und DOM).
Jetzt bringe ich Ihnen einen Artikel über die Implementierung von JavaScript (ausführliche Erklärung von BOM und DOM). Jetzt teile ich es mit Ihnen und gebe es als Referenz.
Wir wissen, dass eine vollständige JavaScript-Implementierung aus drei Teilen bestehen muss: ECMAScript (Kern), BOM (Browser Object Model) und DOM (Document Object Model).
BOM:
BOM stellt viele Objekte für den Zugriff auf Browserfunktionen bereit, die nichts mit dem Inhalt der Webseite zu tun haben (dies sind DOM). ), derzeit wurde BOM vom W3C in die HTML5-Spezifikation verschoben.
Fensterobjekt:
Der Kern von BOM stellt eine Instanz des Browsers dar. Es ist sowohl eine Schnittstelle für den Zugriff auf das Browserfenster über Javascript als auch ein durch ECMAScript spezifiziertes Global . Objekt, d. h. jedes auf der Webseite definierte Objekt, jede Variable und jede Funktion hat window als globales Objekt und hat daher Zugriff auf Methoden wie paresinInt(). (Auszug aus Höhe Drei). Wenn eine Webseite außerdem Frames enthält, verfügt jeder Frame über ein eigenes Fensterobjekt und wird in der Frames-Sammlung gespeichert (beginnend bei Index 0, ltr, ttb).
Erstens sind die Variablen und Funktionen in der globalen Ausführungsumgebung alle Attribute und Methoden des Fensterobjekts. Natürlich gibt es einen kleinen Unterschied zwischen globalen Variablen und dem direkt definierten Fenstereigenschaftstyp. Globale Variablen (genauer gesagt explizit deklarierte globale Variablen) können nicht gelöscht werden, die Fenstereigenschaft jedoch. Darüber hinaus ist noch ein weiteres Detail zu beachten. Der Versuch, auf nicht deklarierte Variablen zuzugreifen, führt zu einem Fehler, bei der Verwendung des Abfragefensterobjekts besteht jedoch kein Problem.
Was sind also die gemeinsamen Eigenschaften oder Methoden von Fenstern?
1.Name, jedes Fensterobjekt verfügt über ein Namensattribut, das den Namen des Rahmens enthält. Normalerweise zum Verständnis von Fensterbeziehungen und Rahmen.
2. Fensterpositionsmethode: moveTo (x-Koordinate der neuen Position, y-Koordinate der neuen Position), moveBy (x horizontal verschieben, y vertikal verschieben). Diese beiden Methoden sind auf das Framework nicht anwendbar.
3. Fenstergrößenattribute: innerWidth/Height (Größe des Ansichtsbereichs (abzüglich der Breite des Rahmens)/* IE, Safari, Firefox */), OuterWidth/Height (gibt die Größe des Browsers zurück window/* IE, Safari, Firefox */). In Chrome geben inner und external beide die Größe des Ansichtsbereichs zurück.
Natürlich können Sie die Fenstergröße durch resizeTo (neue Fensterbreite, neue Fensterhöhe) und resizeBy (x gegenüber ursprünglicher Breite vergrößern, y gegenüber ursprünglicher Höhe vergrößern) ändern. Diese Liebesliedmethode gilt nicht für Rahmenkonstruktionen.
4.window.open (URL, Fensterziel, Attributzeichenfolge, boolescher Wert, ob die neue Seite die aktuell geladene Seite im Browserverlauf ersetzt) wird verwendet, um zu einer bestimmten URL zu navigieren oder ein neues Fenster zu öffnen. Wenn ein Fensterziel angegeben ist und das Fensterziel der Name eines vorhandenen Fensters oder Frames ist, wird die angegebene URL in das umbenannte Fenster oder Frame geladen. Andernfalls wird das neue Fenster, das geöffnet wird, als Zielfenster bezeichnet. Zu den Schlüsselwörtern, die für das Fensterziel angegeben werden können, gehören natürlich _self, _parent, _top und _blank.
<a href=http://www.jb51.net>click me</a> <script> var link=document.getElementsByTagName("a")[0]; alert(link.nodeName); window.onload=function(){ link.onclick=function () { window.open(link.href,"good","width=400px,height=300px"); return false; } } </script
Die spezifischen Einstellungen der charakteristischen Zeichenfolge werden hier nicht im Detail beschrieben
5. Als Single-Threaded-Sprache ermöglicht js weiterhin das Festlegen des Timeouts Wert (angegebener Code nach dem Ereignis ausführen) und Intervallzeitwert (Zyklus zu jedem angegebenen Zeitpunkt), um die Codeausführung zu einem bestimmten Zeitpunkt zu planen.
Timeout-Aufruf: setTimeout (JS-Codezeichenfolge, Millisekundenzeit) Wenn die Task-Warteschlange nach dem Satz leer ist, kann sie als Single-Thread-Sprache jeweils nur einen Code ausführen ZeitintervallFühren Sie dann die Codezeichenfolge aus. Andernfalls warten Sie, bis die vorherige Codeausführung abgeschlossen ist, bevor Sie sie ausführen.
var al=setTimeout(function () { alert("good"); },5000); alert(al); //2
Hier habe ich eine anonyme Funktion aufgerufen, um nach 5 Sekunden „Gut“ auszugeben, und im Fenster wurde ein Warnfeld mit der Anzeige 2 angezeigt. Es ist ersichtlich, dass die Funktion „setTimeout()“ eine numerische ID zurückgibt, die ist eindeutig, dann können wir diese ID verwenden, um den Timeout-Aufruf zu löschen, und Sie können clearTimeout(ID) verwenden, um ihn zu löschen.
Indirekter Aufruf: setInterval(), es akzeptiert die gleichen Parameter wie setTimeout() und gibt außerdem eine numerische ID zurück, die mit clearTimeout() gelöscht werden kann.
6. Methoden des Systemdialogfelds: Alert(), Confirm(), Prompt() usw. sind in meinem vorherigen Blog beschrieben, klicken Sie hier
Standortobjekt
Anstelle eines Objekts in der Stückliste ist es besser zu sagen, dass der Standort ein Attribut im Fensterobjekt ist. Natürlich ist es auch ein Attribut des Dokumentobjekts im DOM, das später besprochen wird. Das heißt, window.location und document location beziehen sich auf dasselbe Objekt.
Durch Ändern dieser Attribute kann eine neue Seite geladen und ein neuer Datensatz im Verlauf generiert werden. Durch die Verwendung von location.replace() werden keine neuen Datensätze im Verlauf generiert.
hash | "#contents" | 返回url中的hash,没有为“” |
host | "www.google.com" | 返回服务器名和端口号(如果有) |
hostname | "www.google.com" | 返回不带端口号的服务器名称 |
href | "www.google.com" | 返回当前页面的完整url,调用了assign() |
pathname | ''/wileyCDA/' | 返回目录名称 |
port | "8080" | 返回端口号,没有则返回空字符串 |
protocol | "http:" | 返回页面使用的协议 |
search | "?=javascript" | 返回查询字符串,以问号开头 |
Navigatorobjekt: Der De-facto-Standard zur Identifizierung von Browsern. Seine Eigenschaften und Methoden werden hauptsächlich zur Erkennung des Browsertyps verwendet.
Der Rest, wie das Verlaufsobjekt (historische Aufzeichnungen speichern) und das Bildschirmobjekt (zeigt die Fähigkeiten des Clients an), sind bei der Programmierung in js nicht sehr nützlich und werden daher nicht im Detail beschrieben.
---------------- ------ ----------------------------------
DOM:
DOM ist eine auf XML basierende und für HTML erweiterte API, die auf der Knotenbaumerweiterung basiert.
Zunächst muss klargestellt werden, dass der Dokumentknoten der Wurzelknoten jedes Knotens ist. Der Dokumentknoten hat und hat nur einen untergeordneten Knoten, nämlich das Element html (Dokumentelement).
Knotentyp:
Eine Schnittstelle in DOM1, die von allen DOM-Knotentypen (Textknoten, Attributknoten, Elementknoten) implementiert wird. Diese Schnittstelle wird in js als verwendet Implementierung des Knotentyps.
nodeType-Attribut, das jedem Knoten gehört. Dargestellt durch 12 numerische Werte, element--1, attribute--2, text--3...
nodeName-Attribut Für Elementknoten ist der Wert von nodeName der Labelname.
nodeValue-Attribut, für Elementknoten ist der Wert von nodeValue null.
Knotenbeziehung: Jeder Knoten hat ein childNodes-Attribut und speichert ein NodeList-Objekt (wie ein Array-Objekt). Jeder Knoten verfügt über ein parentNode-Attribut, das auf den übergeordneten Knoten verweist. Die Knoten in childNodes haben denselben parentNode. Auf Geschwisterknoten kann über die Eigenschaften previousSibling und nextSibling zugegriffen werden. Gleichzeitig sind childNodes[0]==firstChild, childNodes[childNodes.length-1]==lastChild.
Operation node: appendChild(), einen Knoten an das Ende von NodeList schieben und zurückgeben neu hinzugefügter Knoten. insertBefore() löst die Verschiebung eines Knotens an den Kopf von NodeList auf und gibt den neu hinzugefügten Knoten zurück. replaceChild(newChild,targetChild) ersetzt den Zielknoten. Der ursprüngliche Knoten befindet sich noch im Dokument, hat aber keine Position. RemoveChild(tragetChild), entfernt Knoten, hat einen ähnlichen Effekt wie replaceChild(). cloneChild(boolean), true bedeutet vollständige Kopie (gesamter Knoten und untergeordnete Knoten), false bedeutet einfache Kopie.
Dokumenttyp:
stellt ein Dokument dar. Das Dokumentobjekt ist eine Instanz von HTMLDDocument (geerbt vom Dokumenttyp) und repräsentiert die gesamte HTML-Seite. Gleichzeitig ist das Dokumentobjekt auch eine Eigenschaft des Fensterobjekts, sodass auf es als globales Objekt zugegriffen werden kann. document.firstChild==html. document.body==body document.doctype--->Referenz auf . document.title--->title document.url--->location.url.
Elemente suchen: getElementById(),getElementsByTagName(),getElementsByClassName().
Dokument schreiben Eingabe: write(), writeln(), open(), close()
Elementtyp:
getAttribute(), um Attribute für die Klasse abzurufen, verwenden Sie „ class“ anstelle von className können Sie das Klassenattribut erhalten, wenn Sie element.className verwenden.
setAttribute() legt das Attribut fest und ersetzt es, falls vorhanden. Ansonsten erstellen.
removeAttribute(), entfernt Elementattribute vollständig.
createElement(), erstellt ein neues Element.
Texttyp:
createTextNode(), erstellt einen Textknoten. Wenn zwei Textknoten benachbarte Geschwisterknoten sind, werden die beiden Texte verbunden.
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Grundlegende Spezifikationen von JavaScript
Grundlegende Verwendung von Javascript
Beispielcode zum Erstellen von Feuerwerks-Spezialeffekten mit p5.js_JavascriptTipps
Das obige ist der detaillierte Inhalt vonImplementieren Sie die Zusammensetzung von JavaScript (detaillierte Interpretation von BOM und DOM).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
