1. 宣言と定義
変数の型: var は変数を定義します。 const は読み取り専用の定数を定義します。
変数形式: 文字、アンダースコア「_」または $ 記号で始まり、大文字と小文字が区別されます。
変数の割り当て: 宣言されていても割り当てられていない変数を使用すると、宣言されていない変数を直接使用すると、例外がスローされます。
計算に割り当てられていない変数: 結果は NaN です。例:
var x, y = 1; console.log(x + y); //结果为NaN,因为x没有赋值。
2. スコープ
変数スコープ: ES6 より前には、ブロック宣言スコープはなく、変数は関数ブロック内またはグローバルに機能しました。次のコードに示すように、入力 x は 5 です。
if (true) { var x = 5; } console.log(x); // 5
ES6 変数スコープ: ES6 はブロック スコープをサポートしていますが、変数を宣言するには let を使用する必要があります。次のコード出力では、例外がスローされます。
f (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined1234
変数フローティング: メソッドまたはグローバル コード内で、変数が宣言される前に変数を使用すると、例外はスローされませんが、unknown が返されます。これは、JavaScript が変数宣言を関数またはグローバルの前に自動的にフローティングするためです。たとえば、次のコードは次のとおりです。
/** * 全局变量上浮 */ 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"; })();
グローバル変数: このページでは、グローバル オブジェクトは window であるため、window.variable を通じてグローバル変数にアクセスできます。例:
version = "1.0.0"; console.log(window.version); //输出1.0.0
1. データ型
6 つの基本的な型: Boolean (true または false)、null (js は大文字と小文字が区別され、Null と NULL とは異なります)、未定義、数値、文字列、記号 (一意かつ不変としてマーク)
オブジェクトの種類: オブジェクト。
オブジェクトと関数: オブジェクトは値のコンテナとして機能し、関数はアプリケーション プロシージャとして機能します。
2. データ変換
機能: 文字列を数値に変換するには、parseInt メソッドと parseFloat メソッドを使用します。
parseInt: 関数のシグネチャは parseInt(string, radix) で、radix は 10 進数や 16 進数などのデジタル ベースを表す 2 ~ 36 の数値です。返される結果は整数または NaN です。たとえば、以下の出力結果はすべて 15 です。
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: 関数シグネチャは parseFloat(string) で、戻り結果は数値または NaN です。例:
parseFloat("3.14"); //返回数字 parseFloat("314e-2"); //返回数字 parseFloat("more non-digit characters"); //返回NaN
3. データ型のテキスト化
テキスト化タイプ: 配列、ブール、浮動小数点、整数、オブジェクト、正規表現、文字列。
配列内の余分なカンマの状況: ["Lion", , "Angel"]、長さは 3、[1] の値は定義されていません。 ['home', , 'school', ]、最後のカンマが省略されるため、長さは 3 になります。 [ , 'home', , 'school']、長さは 4 です。 ['自宅', , '学校', , ]、長さは 4 です。
integer integer: 整数は、10 進数、8 進数、16 進数、および 2 進数で表現できます。例:
0, 117 and -345 //十进制 015, 0001 and -0o77 //八进制 0x1123, 0x00111 and -0xF1A7 //十六进制 0b11, 0b0011 and -0b11 1234 //二进制
浮動小数点数: [(+|-)][数字][.数字][(E|e)[(+|-)]数字]。例:
3.1415926,-.123456789,-3.1E+12(3100000000000),.1e-23(1e-24)
Object: オブジェクトの属性取得値は、「.property」または「[プロパティ名]」を通じて取得できます。例:
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.
1. ブロック式
機能: ブロック式は、一般的に if、for、while などの制御フローに使用されます。while (x < 10) { x++; }
var x = 1; { var x = 2; } console.log(x); // outputs 2
単純なブール型とオブジェクトのブール型: 単純なブール型の false と trueオブジェクトのブール型の true と true は同じです。次の例のように、この 2 つは等しくありません。
var b = new Boolean(false); if (b) // 返回true if (b == true) // 返回false
throw "Error2"; // 字符串类型 throw 42; // 数字类型 throw true; // 布尔类型 throw {toString: function() { return "I'm an object!"; } }; //对象类型