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:
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
f (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined1234
/** * 全局变量上浮 */ console.log(x === undefined); // logs "true" var x = 3; /** * 方法变量上浮 */ var myvar = "my value"; // 打印变量myvar结果为:undefined (function() { console.log(myvar); // undefined var myvar = "local value"; })();
/** * 全局变量上浮 */ var x; console.log(x === undefined); // logs "true" x = 3; /** * 方法变量上浮 */ var myvar = "my value"; (function() { var myvar; console.log(myvar); // undefined myvar = "local value"; })();
version = "1.0.0"; console.log(window.version); //输出1.0.0
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);
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 //二进制
: [(+|-)][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)
var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" }; console.log(car.manyCars.b); // Jeep console.log(car[7]); // Mazda
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!
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。
var str = "this string \ is broken \ across multiple\ lines." console.log(str); // this string is broken across multiplelines.
while (x < 10) { x++; }
var x = 1; { var x = 2; } console.log(x); // outputs 2
Benutzerdefinierte Ausnahme:
var b = new Boolean(false); if (b) // 返回true if (b == true) // 返回false
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'm an object!"; } }; //对象类型
// 创建一个对象类型UserException function UserException(message) { this.message = message; this.name = "UserException"; } //重写toString方法,在抛出异常时能直接获取有用信息 UserException.prototype.toString = function() { return this.name + ': "' + this.message + '"'; } // 创建一个对象实体并抛出它 throw new UserException("Value too high");