1. 事前分析1. 変数の事前解析と関数の事前解析JavaScript コードはブラウザ内の JavaScript パーサーによって実行されます。 JavaScript パーサーは、事前解析とコード実行の 2 つのステップで JavaScript コードを実行します。
準備は、var で定義された変数と関数に対してのみ行われます。事前分析を学習すると、変数が宣言される前にアクセスされたときにその値が未定義になる理由や、関数が宣言される前に呼び出される理由を理解するのに役立ちます。準備は変数および関数の昇格とも呼ばれます。 1. 変数の事前解析変数の事前解析: 変数宣言は現在のスコープの先頭に昇格され、変数の割り当ては昇格されません。 例えば: /* まずvar変数numを解析する 次にコンソール出力を実行し、最後にnumに10を代入します*/ console.log(num); // 結果は何ですか? var num = 10; // ? 2. 機能事前分析関数の事前分析: 関数宣言は現在のスコープの先頭に昇格されますが、関数は呼び出されません。 /*まずfn関数の定義を解析し、コンソールステートメントを実行します*/ console.log("1+2+3+...+100=",fn()); 関数fn(){ var s = 0; (var i=1;i<=100;i++){ s + = i; } s を返します。 } 2. 事前分析ケースちょっとした練習をして、出力がどうなるか見てみましょう。 コンソールにログ出力します。 var a = 1; コンソールにログ出力します。 関数a(){ を返します。 } 結果は次のとおりです。 2. ターゲットJavaScript では、オブジェクトは関連するプロパティとメソッドの順序付けられていないコレクションです。文字列、数値、配列、関数など、すべてがオブジェクトです。
1. オブジェクトを作成する3つの方法1. リテラルを使用してオブジェクトを作成するオブジェクトリテラル: 中括弧 { } には、この特定のもの (オブジェクト) を表すプロパティとメソッドが含まれます。 { } はキーと値のペアの形式で表現されます。
var スター = { 名前: 'xl', 年齢: 18歳 性別:「女性」、 sayStudy: 関数(){ console.log('一生懸命勉強しなさい'); } }; オブジェクト内のプロパティ呼び出しは、オブジェクト.プロパティ名です。ドット . は「of」として認識されます。例: オブジェクト内の属性を呼び出す別の方法は、object['attribute name']です。角括弧内の属性は引用符で囲む必要があることに注意してください。例: 2. new Objectを使用してオブジェクトを作成するこれは、先ほど学んだ new Array() を使用して配列を作成する原理と同じです。 var andy = 新しいオブジェクト(); andy.name = 'xl'; アンディ.年齢 = 18; andy.sex = '女性'; andy.sayStudy = 関数(){ console.log('一生懸命勉強しなさい'); }
3. コンストラクタを使用してオブジェクトを作成するコンストラクター: 主にオブジェクトを初期化する、つまりオブジェクトのメンバー変数に初期値を割り当てるために使用される特別な関数です。常に new 演算子とともに使用されます。オブジェクトからいくつかの共通プロパティとメソッドを抽出し、この関数にカプセル化することができます。 js では、コンストラクターを使用する場合、次の 2 つの点に注意してください。
例えば: 関数 MyName(名前,年齢,性別){ this.name = 名前; this.age = 年齢; this.sex = セックス; } var xl = new MyName('熊柳','18','女'); var huan = new MyName('王欢','16','女'); コンソールログ('xl.name='+xl.name); console.log('huan:'); console.log(huan); 印刷結果は次のとおりです。 知らせ
4. コンストラクタとオブジェクト
2. 新しいキーワードnew は実行されると次の 4 つの処理を実行します。 1. メモリ内に新しい空のオブジェクトを作成します。 2. これを新しいオブジェクトを指すようにします。 3. コンストラクター内のコードを実行して、新しいオブジェクトにプロパティとメソッドを追加します。 4. この新しいオブジェクトを返します (コンストラクターで return は必要ありません)。 3. オブジェクトプロパティのトラバースfor...in ステートメントは、配列またはオブジェクトのプロパティをループするために使用されます。 構文は次のとおりです。 for (オブジェクト名の変数) { // ここでコードを実行します } 構文内の変数はカスタムであり、命名規則に準拠する必要があります。通常、この変数は k または key として記述されます。 (var k in obj) { console.log(k); // ここで k はプロパティ名です console.log(obj[k]); // ここで obj[k] はプロパティ値です} 例えば、次のオブジェクトが構築されます 関数 ヒーロー(名前,タイプ,血,攻撃){ this.name = 名前; this.type = タイプ; this.blood = 血液; this.attack = 攻撃; } var lianpo = new Hero('Lian Po', 'Power', '500 HP', 'Melee'); var houyi = new Hero('Houyi','シュータータイプ','体力100','長距離'); for..in ステートメントを実行すると、k と obj[k] を印刷すると、それぞれ次の結果が生成されます。 関数 ヒーロー(名前,タイプ,血,攻撃){ this.name = 名前; this.type = タイプ; this.blood = 血液; this.attack = 攻撃; } var lianpo = new Hero('Lian Po', 'Power', '500 HP', 'Melee'); var houyi = new Hero('Houyi','シュータータイプ','体力100','長距離'); for(k in lianpo){ コンソールにログ出力します。 } 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Webデザインチュートリアル(6):デザインへの情熱を持ち続ける
ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...
この記事は主にMySQLデータ移行方法とツールの分析を紹介します。サンプルコードを通じて詳細に紹介さ...
1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...
目次1. フィルターの概念1. グローバルフィルターのフォーマットをカスタマイズする2. フィルター...
開発においては、一覧から詳細ページにジャンプし、また詳細ページに戻る際に一覧ページの状態(スクロール...
mysql 8.0.20 winx64.zip圧縮版のインストールチュートリアルは以下のように記録さ...
<br />以前、「コンテンツページ番号のプレビューナビゲーション」と「写真プレビューナ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...
スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...
関連記事:初心者が学ぶ HTML タグ (3)導入された HTML タグは、必ずしも XHTML 仕...
1. 環境仮想マシン上で実行されているUbuntu 16.04では、コマンドuname -rを使用し...
PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...
この記事の例では、検証コードを作成して取得するためのjsキャンバスの具体的なコードを共有しています。...
事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...