1.Dies deutet auf1. Wer ruft wen an? Beispiel: Funktion foo(){ console.log("dies",dies); } neues foo(); 2. Global auf Fenster zeigen Beispiel: Funktion foo(){ console.log("dies",dies); } foo(); 3. Das this des Konstruktors zeigt auf die Konstruktorinstanz 4.call/apply/bind erzwingt die Änderung dieses Zeigers 5. Das this der Pfeilfunktion zeigt immer auf den übergeordneten Kontext 2. Ereignismodell: Ereignisdelegation, Proxy? So bringen Sie Ereignisse erst zum Sprudeln und erfassen sie dannEreignisdelegierung: auch als Ereignisproxy bekannt. Bei der Ereignisdelegierung wird Event Bubbling verwendet, um alle Ereignisse des untergeordneten Elements an das übergeordnete Element zu binden. Wenn die untergeordneten Elemente das Aufsteigen des Ereignisses verhindern, kann keine Delegierung durchgeführt werden. Drei Parameter: Ereignisname, Ereignismethode, ob erfasst oder gesprudelt werden soll Erst sprudeln, dann erfassen Binden Sie zwei addEventListener an ein Element, wobei der dritte Parameter des einen auf false (d. h. bubbling) und der dritte Parameter des anderen auf true (d. h. capture) gesetzt ist. Passen Sie deren Codereihenfolge an und platzieren Sie das auf false gesetzte Listening-Ereignis vor dem auf true gesetzten Listening-Ereignis. 3. Objekte und ObjektorientierungObjekte sind ein zusammengesetzter Datentyp, der mehrere Attribute unterschiedlicher Datentypen speichern kann. Objektorientiert ist ein Programmierkonzept (alles ist ein Objekt), das prozessorientiert entspricht (Klasse: Klassenvererbung (Unterklasse erbt die Methoden und Eigenschaften der übergeordneten Klasse), Kapselung (der Kern hat geringe Kopplung und hohe Kohäsion), Polymorphismus (Überladen und Umschreiben)). js ist eine objektorientierte Sprache; * js selbst basiert auf objektorientierter Programmierung (Beispiel: Es gibt viele integrierte Klassen in JS, Array, Object, Function, String; Promise ist eine neue integrierte Klasse, die in ES6 hinzugefügt wurde. Wir können eine auf dem neuen Promise basierende Instanz erstellen, um heterogene Programmierung zu verwalten), * Im Allgemeinen basieren die von uns normalerweise verwendeten VUE/REACT/JQUERY ebenfalls auf objektorientierter Basis. Sie sind alle Klassen und ihre Instanzen werden für den Betrieb während der normalen Entwicklung erstellt. 4. Der Unterschied zwischen for···in und for···of1. Es wird empfohlen, for...in beim Durchlaufen von Objekteigenschaften und for...of beim Durchlaufen von Arrays zu verwenden. 2. for...in gibt den Schlüssel aus, for...of gibt den Wert aus. 3. for...of kann keine Schleife für gewöhnliche Objekte ausführen und muss zur Verwendung von Object.keys() gezwungen werden. 5. Duplikate in einem Array findenFinden Sie heraus, ob der Index des ersten und letzten Vorkommens des Elements gleich ist, und bestimmen Sie, ob das Element im neuen Array nicht vorhanden ist. Wenn beide erfüllt sind, fügen Sie es dem neuen Array hinzu. ES6-Satz Die Verwendung des ES6-Sets ist der einfachste Weg, Duplikate zu entfernen var arr = [1,1,'true','true',true,true,15,15,false,false, undefiniert, undefiniert, null, null, NaN, NaN, „NaN“, 0, 0, „a“, „a“, {}, {}]; Funktion arr_unique1(arr){ zurückgeben [...neues Set(arr)]; //oder //return Array.from(new Set(arr)); } arr_unique1(arr); // (13)[1, "true", wahr, 15, falsch, undefiniert, null, NaN, "NaN", 0, "a", {…}, {…}] Verwenden der Map-Datenstruktur zum Entfernen von Duplikaten Funktion arr_unique2(arr) { lass map = neue Map(); let array = new Array(); // Array wird verwendet, um Ergebnisse für (let i = 0; i < arr.length; i++) { zurückzugeben. if(map .has(arr[i])) { // Wenn ein Schlüsselwert vorhanden ist, map .set(arr[i], true); } anders { map .set(arr[i], false); // Wenn kein Schlüssel-Wert-Array vorhanden ist .push(arr[i]); } } Array zurückgeben; } console.log(arr_unique2(arr)); //(13) [1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefiniert] Verwenden der rekursiven Deduplizierung Funktion arr_unique3(arr) { var Array = arr; var len = array.länge; array.sort(function(a,b){ //Es ist einfacher, Duplikate nach dem Sortieren zu entfernen return a - b; }) Funktion Schleife(Index){ wenn(index >= 1){ wenn(Array[Index] === Array[Index-1]){ Array.splice(index,1); } loop(index - 1); //rekursive Schleife, dann Array-Deduplizierung} } Schleife (Länge-1); Array zurückgeben; } console.log(arr_unique3(arr)); //(14) [1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefiniert] fürJeden + Index von Filter+Index von fürJedes + beinhaltet 6. Array-AbflachungBeim Array-Flattening wird ein mehrdimensionales Array in ein eindimensionales Array umgewandelt. 1. Durchlaufen Sie jedes Element des Arrays. 2. Bestimmen Sie, ob das Element ein Array ist. 3. Wenn das Element kein Array ist, fügen Sie es direkt in das neue Array ein. 4. Wenn es ein Array ist, kehren Sie zu 1 zurück und fahren Sie mit der Iteration fort. 5. Wenn die Array-Durchquerung abgeschlossen ist, geben Sie das neue Array zurück. 7. Was sind die Vor- und Nachteile von Iframe?Vorteil: ①Iframe kann die eingebettete Webseite unverändert anzeigen; ②Wenn mehrere Webseiten auf Iframes verweisen, müssen Sie nur den Inhalt des Iframes ändern, um den Inhalt jeder aufgerufenen Seite zu ändern, was bequem und schnell ist. ③ Wenn die Webseite denselben Stil, dieselbe Kopfzeile und dieselbe Version hat, können sie als eine Seite geschrieben und mit Iframe verschachtelt werden, um die Wiederverwendbarkeit des Codes zu erhöhen. ④Das langsame Laden von Inhalten Dritter wie Symbolen und Anzeigen kann durch Iframe gelöst werden. Mangel: ① Es werden viele Seiten generiert, die schwer zu verwalten sind. ②Die Iframe-Struktur kann manchmal verwirrend sein. Wenn viele Frames vorhanden sind, können Bildlaufleisten nach oben und unten sowie nach links und rechts erscheinen, die die Besucher ablenken und zu einer schlechten Benutzererfahrung führen. ③Der Code ist komplex und kann von einigen Suchmaschinen nicht indexiert werden. Das ist sehr kritisch. Aktuelle Suchmaschinen-Crawler können den Inhalt in Iframes nicht gut verarbeiten, daher wirkt sich die Verwendung von Iframes nachteilig auf die Suchmaschinenoptimierung aus. ④Schlechte Gerätekompatibilität. ⑤Iframe-Frameseiten erhöhen die HTTP-Anfragen des Servers, was bei großen Websites nicht ratsam ist. 8. Funktions-CurryingDie Technik, eine Funktion, die mehrere Argumente akzeptiert, in eine Funktion umzuwandeln, die ein einzelnes Argument akzeptiert (das erste Argument der ursprünglichen Funktion) und eine neue Funktion zurückgibt, die die verbleibenden Argumente akzeptiert und das Ergebnis zurückgibt. Dabei wird nur ein Teil der Parameter an die aufzurufende Funktion übergeben und eine neue Funktion zurückgegeben, um die verbleibenden Parameter zu verarbeiten (Abschluss). 9. SpeicherbereinigungsmechanismusDas Javascript des Browsers verfügt über einen automatischen Speicherbereinigungsmechanismus (GC: Garbage Collection), d. h. die Ausführungsumgebung ist für die Verwaltung des während der Codeausführung verwendeten Speichers verantwortlich. Das Prinzip besteht darin, dass der Garbage Collector regelmäßig (periodisch) nicht mehr benötigte Variablen findet und deren Speicher anschließend freigibt. Dieser Vorgang erfolgt jedoch nicht in Echtzeit, da er sehr teuer ist und der GC nicht mehr auf andere Vorgänge reagiert. Daher führt der Garbage Collector ihn regelmäßig in festgelegten Zeitabständen aus. 10.Onload-Ereignis von Windows und DomcontentloadedFenster.beimLaden: Das Onload-Ereignis wird ausgelöst, wenn das Laden einer Ressource und ihrer abhängigen Ressourcen abgeschlossen ist. Dokument.onDOMContentLoaded: Das Ereignis „DOMContentLoaded“ wird ausgelöst, wenn das ursprüngliche HTML-Dokument vollständig geladen und analysiert wurde, ohne auf das vollständige Laden von Stylesheets, Bildern und Unterrahmen zu warten. Der Unterschied: ①Das Onload-Ereignis ist ein DOM-Ereignis und onDOMContentLoaded ist ein HTML5-Ereignis. ②Das Onload-Ereignis wird durch Stylesheets, Bilder und Subframes blockiert, das onDOMContentLoaded-Ereignis jedoch nicht. ③Wenn der geladene Skriptinhalt keine unmittelbaren DOM-Operationen enthält, ist die Verwendung des Ereignisses onDOMContentLoaded die bessere Wahl, das früher als das Ereignis onload ausgeführt wird. ZusammenfassenDamit ist dieser Artikel über die 10 wichtigsten JavaScript-Interviewfragen abgeschlossen. Weitere relevante JavaScript-Interviewfragen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Möglichkeiten zur Verbesserung der MongoDB-Leistung
>>: Skriptbeispiel zum Starten und Stoppen von Spring-Boot-Projekten in Linux
Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...
Heute habe ich zufällig einem Freund beim Umzug s...
Mit etwa Version 0.6 wurde Privileged in Docker e...
Es gibt zwei Hauptgründe, warum es schwierig ist,...
Erste Abfragetabellenstruktur (sys_users): WÄHLEN...
Hintergrund Ich habe mit meinen Klassenkameraden ...
Inhaltsverzeichnis Vorwort Einschränkungen prüfen...
Inhaltsverzeichnis Überblick Einzelne Dateikompon...
Inhaltsverzeichnis Vorwort Kommunikation zwischen...
<br />Grün liegt zwischen Gelb und Blau (kal...
Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Umweltvorbereitung 2. Daten...
Inhaltsverzeichnis Master-Master-Synchronisierung...
In diesem Artikelbeispiel wird der spezifische Co...