Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung allgemeiner JavaScript-Wissenspunkte für die Interviewentwicklung

Zusammenfassung allgemeiner JavaScript-Wissenspunkte für die Interviewentwicklung

黄舟
黄舟Original
2017-03-06 14:42:281315Durchsuche

Syntax und Typ

1. Variablentyp: var, definiert Variablen (Bereich) lokaler Variablen; const , Definieren Sie schreibgeschützte Konstanten.

Variablenformat: beginnt mit einem Buchstaben, Unterstrich „_“ oder $-Symbol, Groß-/Kleinschreibung beachten.

Variablenzuweisung: Eine Variable, die deklariert, aber nicht zugewiesen ist, hat bei Verwendung den Wert undefiniert. Eine Ausnahme wird ausgelöst, wenn eine nicht deklarierte Variable direkt verwendet wird.
Nicht zugewiesene Variable zur Berechnung: Das Ergebnis ist NaN. Zum Beispiel:

2. Geltungsbereich
var x, y = 1;
console.log(x + y); //结果为NaN,因为x没有赋值。

Variablenbereich: Vor ES6 gab es keinen Blockdeklarationsbereich und Variablen agierten in Funktionsblöcken oder global. Wie im folgenden Code gezeigt, ist das eingegebene x 5.

ES6-Variablenbereich: ES6 unterstützt den Blockbereich, aber Sie müssen let verwenden, um Variablen zu deklarieren. Die folgende Codeausgabe führt dazu, dass eine Ausnahme ausgelöst wird.
if (true) {
var x = 5;
}
console.log(x); // 5

Variable Floating: Wenn wir in einer Methode oder einem globalen Code die Variable verwenden, bevor die Variable deklariert wird, wird keine Ausnahme ausgelöst, sondern undefiniert zurückgegeben. Dies liegt daran, dass JavaScript Variablendeklarationen automatisch an den Anfang von Funktionen oder Globals setzt. Zum Beispiel der folgende Code:
f (true) {
let y = 5;
}
console.log(y); // ReferenceError: y is not defined1234

Der obige Code entspricht dem folgenden Code:
/**
* 全局变量上浮
*/
console.log(x === undefined); // logs "true"
var x = 3;

/**
* 方法变量上浮
*/
var myvar = "my value";
// 打印变量myvar结果为:undefined
(function() {
console.log(myvar); // undefined
var myvar = "local value";
})();

Globale Variablen: Auf der Seite ist das globale Objekt Fenster, also wir Zugriff auf globale Variablen. Verfügbar über window.variable. Zum Beispiel:
/**
* 全局变量上浮
*/
var x;
console.log(x === undefined); // logs "true"
x = 3;

/**
* 方法变量上浮
*/
var myvar = "my value";
(function() {
var myvar;
console.log(myvar); // undefined
myvar = "local value";
})();

Nein2. Datenstruktur und -typ
version = "1.0.0";
console.log(window.version); //输出1.0.0

1. Datentyp

6 Grundtypen: Boolean (wahr oder falsch), null (js-Fall) Sensitiv, was sich von Null und NULL unterscheidet), undefiniert, Zahl, Zeichenfolge, Symbol (als eindeutig und unveränderlich markiert)

Ein Objekttyp: Objekt.

Objekt und Funktion: Objekte dienen als Wertebehälter und Funktionen als Anwendungsverfahren.

2. Datenkonvertierung

Funktion: Mit den Methoden parseInt und parseFloat können Strings in Zahlen umgewandelt werden.

parseInt: Die Funktionssignatur ist parseInt(string, radix), radix ist eine Zahl von 2 bis 36, die die digitale Basis darstellt, z. B. dezimal oder hexadezimal. Das Rückgabeergebnis ist eine Ganzzahl oder NaN. Die folgenden Ausgabeergebnisse sind beispielsweise alle 15.

parseFloat: Die Funktionssignatur ist parseFloat(string) und das Rückgabeergebnis ist eine Zahl oder NaN. Zum Beispiel:
parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt(021, 8);
parseInt("015", 10);
parseInt(15.99, 10);
arseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15*3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);

3. Datentyp-Textualisierung
parseFloat("3.14"); //返回数字
parseFloat("314e-2"); //返回数字
parseFloat("more non-digit characters"); //返回NaN

Textualisierungstyp: Array, Boolean, Gleitkomma, Ganzzahlen, Objekt, RegExp, String.

Zusätzliche Komma-Situationen im Array: ["Lion", "Angel"], die Länge beträgt 3 und der Wert von [1] ist unbestimmt. ['home', , 'school', ], das letzte Komma wird weggelassen, daher beträgt die Länge 3. [ , 'home', , 'school'], Länge ist 4. ['home', , 'school', , ], Länge ist 4.

Ganzzahl: Ganzzahlen können dezimal, oktal, hexadezimal und binär ausgedrückt werden. Zum Beispiel:

0, 117 and -345 //十进制
015, 0001 and -0o77 //八进制
0x1123, 0x00111 and -0xF1A7 //十六进制
0b11, 0b0011 and -0b11 1234 //二进制
Gleitkommazahl

: [(+|-)][digits][.digits][(E|e)[(+|-)]digits ]. Beispiel:

Objekt: Der Attributerfassungswert des Objekts kann über „.property“ oder „[Eigenschaftsname]“ abgerufen werden. Beispiel:
3.1415926,-.123456789,-3.1E+12(3100000000000),.1e-23(1e-24)

Objektattribute: Der Attributname kann eine beliebige Zeichenfolge oder eine leere Zeichenfolge sein. Ungültige Namen können in Anführungszeichen eingeschlossen werden. Komplexe Namen können nicht über . abgerufen werden, wohl aber über []. Zum Beispiel:
var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" };
console.log(car.manyCars.b); // Jeep
console.log(car[7]); // Mazda

Escape-Zeichen: Die folgende String-Ausgabe enthält doppelte Anführungszeichen, da das Escape-Symbol „“ verwendet wird.
var unusualPropertyNames = {
"": "An empty string",
"!": "Bang!"
}
console.log(unusualPropertyNames.""); // SyntaxError: Unexpected string
console.log(unusualPropertyNames[""]); // An empty string
console.log(unusualPropertyNames.!); // SyntaxError: Unexpected token !
console.log(unusualPropertyNames["!"]); // Bang!

String-Newline-Methode: Fügen Sie „“ direkt hinzu das Ende der Zeichenfolge, wie im folgenden Code gezeigt:
var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service.";
console.log(quote);
//输出:He read "The Cremation of Sam McGee" by R.W. Service.1。

Nr.3. Kontrollfluss und Fehlerbehandlung
var str = "this string \
is broken \
across multiple\
lines."
console.log(str); // this string is broken across multiplelines.

1. Rolle: Blockausdrücke werden im Allgemeinen für den Kontrollfluss verwendet, z. B. if, for, while. Im folgenden Code ist {x++;} eine Blockdeklaration. Vor ES6 gibt es keinen Blockbereich Der Block ist tatsächlich in der Methode enthalten oder global, und der Einfluss der Variablen übersteigt den Umfang des Blocks. Das endgültige Ausführungsergebnis des folgenden Codes ist beispielsweise 2, da die im Block deklarierten Variablen auf die Methode wirken. 🎜>

Nach ES6 gibt es einen Blockbereich: In ES6 können wir die Blockbereichsdeklaration var ändern, sodass die Variable nur den Blockbereich abdeckt

2. Logische Beurteilung

Spezielle Werte, die als falsch beurteilt werden: false, undefiniert, null, 0, NaN, „“
while (x < 10) {
x++;
}
Einfache boolesche und objektbezogene boolesche Typen: Es gibt einen Unterschied zwischen „falsch“ und „wahr“ beim einfachen booleschen Typ und „falsch“ und „wahr“ beim Objekt-Boolean Typ. Wie im folgenden Beispiel:

var x = 1;
{
var x = 2;
}
console.log(x); // outputs 2
Ausnahmebehandlung

Ausnahmetyp auslösen: Ausnahme auslösen kann Beliebiger Typ sein. Wie unten gezeigt.

Benutzerdefinierte Ausnahme:

var b = new Boolean(false);
if (b) // 返回true
if (b == true) // 返回false
Schlüsselwort: try{}catch(e){ } Die Syntax von „finally{} ähnelt der C#-Syntax: Wenn „finally“ eine Return-Anweisung hinzufügt, lautet der Rückgabewert schließlich wie folgt:

Finally Engulfing-Ausnahme: Wenn „finally“ eine Return-Ausnahme hat und es eine „Throw“-Ausnahme im Catch gibt, wird die „Throw“-Ausnahme nicht abgefangen, da sie durch „finally return“ abgedeckt wurde:

System Fehlerobjekt: Wir können das Objekt Error{name, message} direkt verwenden, zum Beispiel: throw (new Error('The message'));

throw "Error2"; // 字符串类型
throw 42; // 数字类型
throw true; // 布尔类型
throw {toString: function() { return "I&#39;m an object!"; } }; //对象类型
Das Obige sind allgemeine JavaScript-Wissenspunkte zur Interviewentwicklung. Zusammenfassender Inhalt, Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)

// 创建一个对象类型UserException
function UserException(message) {
this.message = message;
this.name = "UserException";
}

//重写toString方法,在抛出异常时能直接获取有用信息
UserException.prototype.toString = function() {
return this.name + &#39;: "&#39; + this.message + &#39;"&#39;;
}

// 创建一个对象实体并抛出它
throw new UserException("Value too high");
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn