Teil 2: Top(6–9) häufige JavaScript-Fragen
JavaScript ist eine Programmiersprache, die zu einer der gefragtesten Fähigkeiten bei Stellenanfragen geworden ist. Es handelt sich um eine vielseitige Sprache, die für die Webentwicklung, die Entwicklung mobiler Apps, die serverseitige Programmierung und mehr verwendet wird.
In diesem Blogbeitrag behandeln wir die nächsten 6–9 häufig gestellten JavaScript-Interviewfragen, die in Fachinterviews häufig gestellt werden.
Den ersten Teil von 5 Fragen finden Sie hier
Teil 1: Top(1-5) häufige JavaScript-Fragen
Frage 6: Was ist der Unterschied zwischen synchronem und asynchronem Code?
Synchroner Code ist ein Codetyp, der in sequentieller Reihenfolge Zeile für Zeile ausgeführt wird. Mit anderen Worten: Die nächste Codezeile wird erst ausgeführt, wenn die Ausführung der aktuellen Zeile abgeschlossen ist.
Diese Art von Code wird häufig in einfacheren, kleineren Anwendungen verwendet, bei denen die Anwendung nicht mehrere Aufgaben gleichzeitig ausführen muss. Betrachten Sie beispielsweise den folgenden synchronen Code:
function printNumbers() {
console.log(1);
console.log(2);
console.log(3);
}
printNumbers();
Asynchroner Code hingegen ermöglicht die gleichzeitige Ausführung mehrerer Funktionen, ohne auf den Abschluss einer Funktion warten zu müssen, bevor die nächste gestartet wird.
Diese Art von Code wird häufig in größeren, komplexeren Anwendungen verwendet, bei denen mehrere Aufgaben gleichzeitig ausgeführt werden müssen. Betrachten Sie beispielsweise den folgenden asynchronen Code:
async function printNumbers() {
console.log(1);
setTimeout(() => {
console.log(2);
}, 1000);
console.log(3);
}
printNumbers();
Der Hauptunterschied zwischen synchronem und asynchronem Code besteht in der Reihenfolge, in der der Code ausgeführt wird, und in den Auswirkungen, die dies auf die Fähigkeit der Anwendung hat, andere Aufgaben auszuführen, während sie auf den Abschluss einer bestimmten Aufgabe wartet.
Synchroner Code blockiert die Ausführung des restlichen Codes, bis die aktuelle Aufgabe abgeschlossen ist, während asynchroner Code die gleichzeitige Ausführung mehrerer Aufgaben ermöglicht, wodurch die Gesamteffizienz der Anwendung verbessert wird.
Frage 7: Was ist der Unterschied zwischen Pass-by-Value und Pass-by-Reference in JavaScript?
In JavaScript gibt es zwei Möglichkeiten, Argumente an eine Funktion zu übergeben: Übergabe als Wert und Übergabe als Referenz.
Wertübergabe bedeutet, dass bei der Übergabe einer Variablen als Argument an eine Funktion eine Kopie ihres Werts erstellt und an die Funktion übergeben wird.
Alle am Argument innerhalb der Funktion vorgenommenen Änderungen wirken sich nicht auf die ursprüngliche Variable außerhalb der Funktion aus. Zum Beispiel:
let x = 5;
function changeValue(y) {
y = 10;
}
changeValue(x);
console.log(x); // Output: 5
Übergabe als Referenz bedeutet hingegen, dass bei der Übergabe eines Objekts als Argument an eine Funktion eine Referenz auf das Objekt übergeben wird und keine Kopie seines Werts.
Dies bedeutet, dass sich alle am Objekt innerhalb der Funktion vorgenommenen Änderungen auf das ursprüngliche Objekt außerhalb der Funktion auswirken. Zum Beispiel:
let obj = {value: 5};
function changeValue(y) {
y.value = 10;
}
changeValue(obj);
console.log(obj.value); // Output: 10
Es ist wichtig, den Unterschied zwischen der Wertübergabe und der Referenzübergabe in JavaScript zu verstehen, da dies erhebliche Auswirkungen auf das Verhalten Ihres Codes haben kann.
Beim Arbeiten mit primitiven Datentypen wie Zahlen und Zeichenfolgen wird die Wertübergabe verwendet, bei der Arbeit mit Objekten jedoch die Referenzübergabe.
Frage 8: Wozu dient der „strikte Modus“ in JavaScript und wie aktivieren Sie ihn?
Der strikte Modus ist eine Funktion in JavaScript, die eine sicherere Ausführungsumgebung für Ihren Code bietet. Es hilft Ihnen, besseren und saubereren Code zu schreiben, indem es Regeln durchsetzt, die bei der normalen JavaScript-Ausführung ansonsten optional sind.
Der strikte Modus erlaubt beispielsweise die Verwendung nicht deklarierter Variablen, was dazu beitragen kann, versehentliche Globals und andere Probleme im Zusammenhang mit Variablen zu verhindern. Es verhindert außerdem die versehentliche Änderung von schreibgeschützten Eigenschaften, z. B. dem argumentsObjekt, und verhindert die Verwendung einiger veralteter Funktionen, z. B. der withAnweisung.
Um den strikten Modus in JavaScript zu aktivieren, können Sie oben in Ihrem Skript oder Ihrer Funktion die folgende Zeile hinzufügen:
"use strict";
(function () {
"use strict";
// Your code here
})();
Zusammenfassend lässt sich sagen, dass die Verwendung des strikten Modus in JavaScript optional ist, aber zur Verbesserung der Gesamtqualität und Sicherheit Ihres Codes dringend empfohlen wird. Durch die Verwendung des strikten Modus können Sie potenzielle Fehler frühzeitig erkennen, häufige Fallstricke vermeiden und Code schreiben, der besser wartbar und skalierbar ist.
Frage 9: Welche Möglichkeiten gibt es, die Leistung von JavaScript-Code zu optimieren?
Es gibt mehrere Möglichkeiten, die Leistung von JavaScript-Code zu optimieren. Einige der gängigsten Methoden sind:
- Den Code verkleinern: Den Code verkleinern bedeutet, alle unnötigen Zeichen wie Leerzeichen und Kommentare zu entfernen und Variablennamen zu kürzen, um die Größe des Codes zu reduzieren. Eine kleinere Codegröße bedeutet, dass weniger Daten übertragen werden müssen, was zu schnelleren Ladezeiten führen kann.
- Verwenden von Caching: Durch das Zwischenspeichern häufig verwendeter Daten können Sie redundante Berechnungen vermeiden und Ihren Code beschleunigen. Sie können Daten in lokalen Variablen oder im Cache des Browsers zwischenspeichern.
- Vermeiden Sie das Blockieren des Hauptthreads: JavaScript ist eine Single-Threaded-Sprache, was bedeutet, dass sie jeweils nur eine Sache ausführen kann. Wenn Sie eine Aufgabe mit langer Laufzeit haben, wird der Hauptthread blockiert, sodass die Seite nicht mehr reagiert. Um dies zu vermeiden, können Sie asynchrone Programmiertechniken wie Rückrufe oder Promises verwenden, um die Aufgabe mit langer Laufzeit an einen Arbeitsthread auszulagern.
- Vermeiden Sie die Verwendung globaler Variablen: Globale Variablen können Ihren Code verlangsamen, da sie von überall im Code aus zugänglich sind, und sie können Kollisionen mit anderen Variablen mit demselben Namen verursachen. Verwenden Sie stattdessen lokale Variablen innerhalb von Funktionen, die schneller und weniger kollisionsanfällig sind.
- Verwenden Sie Lazy Loading: Lazy Loading ist eine Technik, bei der nur der benötigte Inhalt und nicht die gesamte Seite auf einmal geladen wird. Auf diese Weise können Sie die Datenmenge reduzieren, die übertragen und verarbeitet werden muss, was zu schnelleren Ladezeiten führt.
- Verwenden Sie geeignete Datenstrukturen: Die Auswahl der richtigen Datenstruktur für Ihren Code kann erhebliche Auswirkungen auf die Leistung haben. Beispielsweise kann die Verwendung eines Arrays zum Suchen, Sortieren und Bearbeiten großer Datensätze langsam sein, während die Verwendung eines Objekts oder einer Karte viel schneller sein kann.
- Profilerstellung: Durch die Profilerstellung Ihres Codes können Sie Engpässe identifizieren und die Leistung Ihres Codes optimieren. Sie können die DevTools in Ihrem Browser verwenden, um ein Profil Ihres Codes zu erstellen und Bereiche zu finden, die verbessert werden müssen.
// Minifying the code
const name = "John Doe";
console.log("Hello, " + name);
// Becomes:
const n="John Doe";console.log("Hello, "+n);
// Using caching
const myArray = [1, 2, 3, 4, 5];
function sumArray(array) {
let sum = 0;
for (let i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
let sum = sumArray(myArray);
console.log(sum);
// Using proper data structures
const data = [1, 2, 3, 4, 5];
let sum = 0;
for (let i = 0; i < data.length; i++) {
sum += data[i];
}
console.log(sum);
// Becomes:
const data = new Map([[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]);
let sum = 0;
for (const value of data.values()) {
sum += value;
}
console.log(sum);
<=====>
Wenn Sie mehr über das Codieren in Javascript erfahren möchten, folgen Sie mir unbedingt für weitere Codeausschnitte und Beispiele. Ich gebe Ihnen wertvolle Informationen und Tipps, wie Sie die Sprache beherrschen und Ihre Fähigkeiten als Entwickler verbessern. Bleiben Sie also auf dem Laufenden, um weitere Updates zu erhalten, und lassen Sie uns gemeinsam weiter lernen.
Danke fürs Lesen. Viel Spaß beim Lernen
Unterstützen Sie unsere Publikation, indem Sie ihr folgen
Splunk-Integration mit SpringBoot Teil – 1 Das Click-Jacking und seine vorbeugenden Maßnahmen Selbstverbesserung: Eine Reise des persönlichen Wachstums Splunk-Integration mit SpringBoot – Teil 2 2023 Reagieren Sie auf JS-Trends, um zu beobachten, wie moderne Unternehmer auf Propan- Codierung umsteigen: Umkehren der Wortreihenfolge in a Zeichenfolge in Javascript- Konvertierungen und -Werbungen in Java Splunk-Integration mit SpringBoot – Letzter Teil
![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































