Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung der bei der Interviewentwicklung häufig verwendeten JavaScript-Wissenspunkte

Zusammenfassung der bei der Interviewentwicklung häufig verwendeten JavaScript-Wissenspunkte

黄舟
黄舟Original
2017-02-23 13:17:501189Durchsuche


Nr. 1. Syntax und Typ

1. Variablentyp: var, Variable definieren let; Definieren Sie lokale Variablen des Blockbereichs (Scope); 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. Wenn eine nicht deklarierte Variable direkt verwendet wird, wird eine Ausnahme ausgelöst.

Nicht zugewiesene Variable zur Berechnung: Das Ergebnis ist NaN. Zum Beispiel:

 

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

  Variablenumfang: Vor ES6 gab es keinen Blockdeklarationsumfang und Variablen agierten in Funktionsblöcken oder global. Wie im folgenden Code gezeigt, ist die Eingabe x 5.

ES6-Variablenbereich: ES6 unterstützt den Blockbereich, Sie müssen jedoch 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 die Variablendeklaration automatisch an den Anfang der Funktion oder global platziert. 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";
})();

Nr. 2. Datenstruktur und -typ

version = "1.0.0";
console.log(window.version); //输出1.0.0

1 Datentyp

6 Grundtypen: Boolesch (wahr oder falsch) , null (bei js wird zwischen Groß- und Kleinschreibung unterschieden, anders als Null und NULL), 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 Zeichenfolgen 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 Kommas 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: Ganzzahl kann als Dezimalzahl, Oktalzahl, Hexadezimalzahl oder Binärzahl ausgedrückt werden. Zum Beispiel:

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

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

Objekt: Der Attributwert 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-Wrapping-Methode: Fügen Sie „“ direkt an 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。

Nr3. Kontrollfluss und Fehlerbehandlung

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

1 🎜> Funktion: Blockausdrücke werden im Allgemeinen für den Kontrollfluss verwendet, z. B. if, for, while. Im folgenden Code ist {x++;} ein Blockfeld. Vor ES6 wurden Variablen definiert im Block waren tatsächlich in der Methode enthalten oder global, und der Einfluss der Variablen überstieg den Umfang des Blocks. Das endgültige Ausführungsergebnis des folgenden Codes ist beispielsweise 2, da die im Block deklarierten Variablen darauf wirken. Methode.

Nach ES6 gibt es einen Blockbereich: In ES6 können wir die Blockbereichsdeklaration var ändern, sodass die Variable nur den Bereich des Blockbereichs abdeckt. 2. Logische Beurteilung 🎜> Als falsch beurteilte Sonderwerte: false, undefiniert, null, 0, NaN, ""

Einfache boolesche und Objekt-boolesche Typen: einfacher boolescher Typ. Es gibt einen Unterschied zwischen false und true vom booleschen Objekttyp. Sie sind nicht gleich, wie im folgenden Beispiel:

while (x < 10) {
x++;
}

Nr. 4. Ausnahmebehandlung

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

1 .Ausnahmetyp

Auslöser-Ausnahmesyntax: Auslöser-Ausnahme kann beliebiger Art sein, wie unten gezeigt:

Schlüsselwort: Verwendung try{}catch(e){}finally{}-Syntax, ähnlich der C#-Syntax

„finally“-Rückgabewert: „if finaly“: Nach dem Hinzufügen der return-Anweisung wird unabhängig davon, was der gesamte try.catch zurückgibt, der Rückgabewert ist die endgültige Rückkehr, wie unten gezeigt:

function f() {
    try {
        console.log(0);
        throw "bogus";
    } catch(e) {
        console.log(1);
        return true; // 返回语句被暂停,直到finally执行完成
        console.log(2); // 不会执行的代码
    } finally {
        console.log(3);
        return false; //覆盖try.catch的返回
        console.log(4); //不会执行的代码
    }
    // "return false" is executed now 
    console.log(5); // not reachable
}
f(); // 输出 0, 1, 3; 返回 false

  finally吞并异常:如果finally有return并且catch中有throw异常。throw的异常不会被捕获,因为已经被finally的return覆盖了。如下代码所示:

function f() {
    try {
        throw "bogus";
    } catch(e) {
        console.log(&#39;caught inner "bogus"&#39;);
        throw e; // throw语句被暂停,直到finally执行完成
    } finally {
        return false; // 覆盖try.catch中的throw语句
    }
    // 已经执行了"return false"
}

try {
    f();
} catch(e) {
    //这里不会被执行,因为catch中的throw已经被finally中的return语句覆盖了
    console.log(&#39;caught outer "bogus"&#39;);
}
// 输出
// caught inner "bogus"

  系统Error对象:我们可以直接使用Error{name, message}对象,例如:throw (new Error('The message'));

 以上就是面试开发常用的 JavaScript 知识点总结的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


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