Zusammenfassung der 10 wichtigsten JavaScript-Interviewfragen (empfohlen)

Zusammenfassung der 10 wichtigsten JavaScript-Interviewfragen (empfohlen)

1.Dies deutet auf

1. 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 dann

Ereignisdelegierung: 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 Objektorientierung

Objekte 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···of

1. 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 finden

Finden 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-Abflachung

Beim 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-Currying

Die 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. Speicherbereinigungsmechanismus

Das 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 Domcontentloaded

Fenster.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.

Zusammenfassen

Damit 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:
  • 25 JavaScript-Interviewfragen, die Sie kennen müssen
  • Ein relativ vollständiger Satz von Javascript-Interviewfragen (Teilantworten)
  • JS-Interviewfragen, bei denen 80 % der Bewerber durchfallen
  • Fragen und Antworten zum JS-Frontend-Interview (Teil 1)
  • Fragen zum schriftlichen Front-End-Test 2014 von BAT und anderen großen Internetunternehmen - JavaScript
  • JS-Abschluss-Interviewfragen, die Sie versehentlich falsch beantworten könnten
  • NetEase JS-Interviewfragen und Erklärung zum lexikalischen Geltungsbereich von Javascript
  • Klassische Fragen und Antworten zum Javascript-Frontend-Interview
  • 5 klassische JavaScript-Interviewfragen
  • Hier sind 43 JS-Interviewfragen für Sie (Sammlung)

<<:  Möglichkeiten zur Verbesserung der MongoDB-Leistung

>>:  Skriptbeispiel zum Starten und Stoppen von Spring-Boot-Projekten in Linux

Artikel empfehlen

Detaillierte Erklärung zur Verwendung von JavaScript-Funktionen

Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...

Detailliertes Tutorial zur Konfiguration von Docker nginx + https-Subdomains

Heute habe ich zufällig einem Freund beim Umzug s...

Eine kurze Erläuterung der Rolle des Parameters docker --privileged=true

Mit etwa Version 0.6 wurde Privileged in Docker e...

Reiner CSS-Header, korrigierter Implementierungscode

Es gibt zwei Hauptgründe, warum es schwierig ist,...

Schritte zur Überprüfung der MySQL InnoDB-Row_ID-Grenzwertüberschreitung

Hintergrund Ich habe mit meinen Klassenkameraden ...

Neue Funktionen in MySQL 8.0 - Einführung in Check Constraints

Inhaltsverzeichnis Vorwort Einschränkungen prüfen...

So implementieren Sie eine einzelne Dateikomponente in JS

Inhaltsverzeichnis Überblick Einzelne Dateikompon...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...

Verstehen Sie die Prinzipien und Anwendungen von JSONP in einem Artikel

Inhaltsverzeichnis Was ist JSONP JSONP-Prinzip JS...

Vue implementiert eine einfache Notizblockfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Anwendungsbeispiele für die MySQL-Volltextsuche

Inhaltsverzeichnis 1. Umweltvorbereitung 2. Daten...

VUE implementiert Saugknopf an der Unterseite

In diesem Artikelbeispiel wird der spezifische Co...