no1。構文とタイプ
1。宣言定義
変数タイプ:var、定義変数。ブロックドメインのローカル変数(スコープ)を定義します。 const、読み取り専用定数を定義します。
変数形式:文字から始めて、「_」または$シンボルを強調し、ケースに敏感です。
変数割り当て:宣言されたが割り当てられていない変数の値は、使用すると定義されていません。非宣言されていない変数を直接使用すると、例外がスローされます。
割り当てられていない変数が計算されます。結果はNANです。例えば:
var x、y = 1;
console.log(x + y); // Xには割り当てがないため、結果はNANです。
2。スコープ
変数スコープ:ES6の前にブロック宣言フィールドはなく、変数は関数ブロックまたはグローバルに作用します。たとえば、次のコードはxに5として入ります。
if(true){var x = 5;} console.log(x); // 5ES6変数スコープ:ES6はブロックスコープをサポートしますが、変数を宣言するためにLETを使用する必要があります。次のコードが例外を出力します。
if(true){let y = 5;} console.log(y); //参照エラー:yは定義されていません1234可変フロート:メソッドまたはグローバルコードでは、ライフ変数の前に変数を使用する場合、例外をスローするのではなく、未定義に戻します。これは、JavaScriptが機能またはグローバルの前面に変数の宣言を自動的にフロートするためです。次のコードに示されているように:
/***グローバル変数float*/console.log(x === undefined); // logs "true" var x = 3;/***変数float*/var myvar = "my value"; // print variable myvar result is:undefined(){console.log(myvar); // undefinedvar = "local value";})();上記のコードは、次のコードと同等です。 // logs "true" x = 3;/*** methos変数float*/var myvar = "my value";(function(){var myvar; console.log(myvar); // undefinedmyvar = "local value";})();グローバル変数:ページでは、グローバルオブジェクトはウィンドウであるため、window.variableを介してグローバル変数にアクセスできます。例えば:
version = "1.0.0"; console.log(window.version); //出力1.0.0
NO2。データ構造とタイプ
1。データ型
6基本タイプ:ブール(真またはfalse)、null(jsケースに敏感で、nullとnullとは異なる)、未定義、数字、文字列、シンボル(マークユニークで不変)
オブジェクトタイプ:オブジェクト。
オブジェクトと関数:値のコンテナとしてのオブジェクトと、アプリケーションプロセスとしての関数。
2。データ変換
関数:文字列を数値に変換すると、ParseintおよびParsefloatメソッドを使用できます。
parseint:関数の署名はparseint(string、radix)で、Radixは小数点または六十数などの数値ベースを表す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); 2); parseint( "15*3"、10); parseint( "15e2"、10); parseint( "15px"、10); parseint( "15px"、10); parseint( "15px"、10); parseint( "15px"、10); paseint( "15px"); parseint( "15px") 10); parseint( "15px"、10); parseint( "15px"、10); parseint( "15px"、10); parseint( "15px"、10);
Parsefloat:関数の署名はParsefloat(String)であり、結果は数またはNANです。例えば:
parsefloat( "3.14"); //番号parsefloat( "314e-2"); //番号Parsefloat( "その他の非桁の文字")を返します。 //番号nanを返します
3。データ型のテキスト化
テクスチャタイプ:アレイ、ブール、フローティングポイント、整数、オブジェクト、regexp、文字列。
アレイの追加のコンマケース:["lion"、 "、" Angel "]、長さ3、[1]の値は無効です。 ['home'、 'school'、]、最後のコンマは省略されているため、長さは3です。
整数整数:整数は、小数、octal、16進数、およびバイナリとして表現できます。例えば:
0、117および-345 // Decimal 015、0001および-0O77 // Octal 0x1123、0x00111および-0xf1a7 // hex 0b11、0b0011および-0b11 1234 //バイナリフローティングポイント番号:[(+| - )]例: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); // jeepconsole.log(car [7]); //マツダオブジェクト属性:属性名は任意の文字列または空の文字列であり、無効な名前を引用符に含めることができます。複雑な名前は介して取得することはできませんが、[]を通じて取得できます。例えば:
var dusualpropertynames = {"": "an empty string"、 "!": "bang!"} console.log(anualpropertynames。 ""); // syntaxerror:予期しないstringconsole.log(anualpropertynames [""]); //空のstringconsole.log(anualpropertynames。!); // syntaxerror:予期しないトークン!console.log(anualpropertynames ["!"]); //バン!変換文字:次の文字列出力結果には、変換記号 "/" "が使用されるため、二重引用符が含まれています。
var Quote = "彼はRWサービスによるSam McGee/"の火葬/"を読みました。
文字列の壊し方法:次のコードに示すように、文字列の最後に「/」を直接追加します。
var str = "この文字列 /は壊れている /複数 /cross /lines。" console.log(str); //この文字列はマルチプレーライン全体で壊れています。
NO3。制御フローとエラー処理
1。ブロック式
関数:ブロック式は、一般に、その場合などのフローを制御するために使用されます。次のコードでは、{x ++;}はブロック宣言です。
while(x <10){x ++;}ES6の前にブロックドメインスコープはありませんでした。ES6の前に、ブロックで定義された変数が実際にメソッドまたはグローバルに含まれ、変数の影響はブロックスコープの範囲を超えました。たとえば、次のコードの最終的な実行結果は2です。これは、ブロックで宣言された変数がメソッドに基づいて動作するためです。
var x = 1; {var x = 2;} console.log(x); //出力2ES6の後、ブロックドメインの範囲があります。ES6では、ブロックドメイン宣言varを変更して、変数がブロック範囲をスコープするようにすることができます。
2。論理的判断
偽として判断される特別な値:false、未定義、null、0、nan、 ""。
単純なブールとオブジェクトのブールタイプ:単純なブール型のfalseとtrueには違いがあり、オブジェクトブールタイプにはfalseとtrueに違いがあり、2つは等しくありません。次の例のように:
var b = new boolean(false); if(b)// trueif(b == true)// return false
NO4。例外処理
1.Exceptionタイプ
例外スロー構文:例外スローは、あらゆるタイプにすることができます。以下に示すように。
「error2」を投げます。 //文字列タイプスロー42; // number type throw true; // booleanタイプスロー{toString:function(){return "I'm a Object!"; }}; //オブジェクトタイプカスタム例外:
//オブジェクトタイプを作成しますuserexceptionfunction userexception(message){this.message = message; this.name = "userexception";} // ToStringメソッドを書き換えて、例外をスローするときに有用な情報を直接取得します。新しいuserexception( "値が高すぎる");2。構文
キーワード:try {} catch(e){} quant {}構文を使用して、C#構文と同様に使用します。
最終的に戻り値:最終的に返品ステートメントを追加した場合、try.catchの返品全体に関係なく、戻り値は最終的に戻ります。以下に示すように:
function f(){try {console.log(0); 「偽物」を投げる; } catch(e){console.log(1); trueを返します。 // returnステートメントは、最終的に実行が完了するまで一時停止されます。console.log(2); //実行されないコード}最後に{console.log(3); falseを返します。 // return Console.log(4)を上書きする; //実行されないコード} // "RETURN FALSE"が実行されましたconsole.log(5); //到達不可} f(); //出力0、1、3; falseを返します最後に、嚥下例外:最終的に戻りがあり、キャッチにスロー例外がある場合。スローの例外は、最終的なリターンでカバーされているため、キャッチされません。次のコードは次のようになります。
function f(){try {throw "bogus"; } catch(e){console.log( 'catchiner "bogus"'); eを投げる; //スローステートメントは、最終的に実行が完了するまで一時停止されます}最終的に{falseを返します。 // try.catch}でスローステートメントを上書き} // "return false"} try {f();} catch(e){//キャッチのスローが最終的にコンソールのリターンステートメントによって上書きされたため、ここで実行されません( 'キャッチアウター "ボグス"');}システムエラーオブジェクト:エラー{name、message}オブジェクトを直接使用できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。