JS基礎(五)関数と対象
6687 ワード
JS基礎(五)
一、arguments使用
パラメータがどれだけ伝達されているか分からない場合はargumentsで取得できます.JavaScriptでは、argumentsは実際には現在の関数の組み込みオブジェクトです.
以下の特徴があります.は擬似配列 である配列length属性 を有するはインデックス方式で保存することができる .には、push、pop などの真の配列のいくつかの方法がありません.関数のみargumentsオブジェクトがあり、各関数にはarguments が内蔵されています.
二、関数宣言
1、カスタム関数の命名方式(命名関数)
関数キーワードfunctionによるカスタム関数の使用
2、関数式(匿名関数)
三、作用域
1、定義この変数名の可用性を限定するコード範囲が、この名前の役割ドメインである. はプログラムロジックの局所性を向上させ、プログラムの信頼性を強化し、名前の衝突を減少させた.
2、グローバル役割ドメイン
すべてのコード実行環境(scriptラベルの内部全体)または独立したjsファイルに作用します.
3、局部作用域
関数内に作用するコード環境は,局所作用ドメインである.
4、ブロックレベルの役割ドメイン
jsにはブロックレベルの役割ドメインがありません
四、変数
1、グローバル変数
グローバル役割ドメインで宣言される変数をグローバル変数(関数の外部で定義された変数)と呼びます.注意:関数の内部に直接付与された変数が宣言されていない変数もグローバル変数 に属します.は、ブラウザが閉じた上海でのみ破棄され、メモリ を比較します.グローバル変数は、コードの任意の場所で を使用できます.
2、局部変数
ローカル役割ドメインで宣言される変数をローカル変数(関数内部で定義された変数)と呼びます.は、関数の内部でのみ使用できます. 関数の内部宣言変数は、ローカル変数 です.関数のパラメータは実際には局所変数 である.プログラムの実行が完了すると が破棄されます.
五、作用ドメインチェーン
1、定義
コードがすべて1つの役割ドメインであれば、関数の内部に書かれた局所的な役割ドメインであり、どの関数の内部にも書かれていないグローバルな役割ドメインである.
関数に関数がある場合、この役割ドメインにはまた1つの役割ドメインが誕生することができます.
「**[内部関数が外部関数変数にアクセスできる]**のこのメカニズムに基づいて,どのデータが内部関数にアクセスできるかをチェーン検索で決定することを役割ドメインチェーンと呼ぶ.
2、作用ドメインチェーン:
変数の最終的な値を検索するには、近接原則を採用します.
六、事前解析
1、jsエンジンはどのようにjsコードを実行するか
まず文法検査を行い,それから事前解析を行い,最後にコードを実行する事前解析:現在の役割ドメインでJSコードが実行される前に、ブラウザはデフォルトでvarとfunction宣言を持つ変数をメモリに事前宣言または定義します. コード実行:JS文を上から下へ実行します.事前解析では、変数と関数の宣言をコード実行前に実行します.
1、文法検査段階のエラー:
jsファイル全体が実行されません(了解)
2、コード実行段階のエラー:
現在の場所から次のjsは実行されません(理解)
2、変数の事前解析
変数の昇格(変数の事前解析):変数の宣言は現在の役割ドメインの一番上に昇格し、変数の付与値は昇格しません.
3、関数の事前解析
関数の昇格:関数の宣言は現在の役割ドメインの一番上に昇格しますが、関数は呼び出されません.
関数式の昇格?関数のリフトは存在せず、変数のリフトのみが存在します.
(拡張)関数と変数を同時に昇格させる:
//関数宣言の優先度は変数宣言より高いが、変数付与値より高くない
七、対象(object)
1、定義
オブジェクトは無秩序な関連属性とメソッドの集合であり、すべてのものがオブジェクトである.属性:物事の特徴、対象に属性で表す(常用名詞) 方法:物事の行為、対象の中で方法で表す(常用動詞) 2、オブジェクトを作成する3つの方法
1、字面量オブジェクトを作成する
オブジェクトのプロパティを呼び出します.
オブジェクトメソッドを呼び出します.
2、new Objectを利用してオブジェクトを作成する
オブジェクトのプロパティを追加するフォーマット:オブジェクト.属性=値;
3、コンストラクション関数によるオブジェクトの作成
書式:
呼び出しフォーマット:構造関数は、頭文字の大文字を約束します. 関数内のプロパティとメソッドの前にthisを追加する必要があります.これは、現在のオブジェクトのプロパティとメソッドを表します. コンストラクション関数ではreturnが結果を返す必要はありません. オブジェクトを作成するときは、newを使用してコンストラクション関数を呼び出す必要があります.
3、newキーワード実行プロセス★★★★まずメモリにメモリ容量を追加し、作成するオブジェクト を格納する. thisキーワードでメモリ領域 を指す this追加プロパティメソッド 追加が完了すると、このthisに戻り、オブジェクトの作成を完了する 4、オブジェクトの遍歴
for(変数inオブジェクト名){
一、arguments使用
パラメータがどれだけ伝達されているか分からない場合はargumentsで取得できます.JavaScriptでは、argumentsは実際には現在の関数の組み込みオブジェクトです.
以下の特徴があります.
二、関数宣言
1、カスタム関数の命名方式(命名関数)
関数キーワードfunctionによるカスタム関数の使用
function (){...}
();// ,
2、関数式(匿名関数)
var = function(){
...};
();// ,
三、作用域
1、定義
2、グローバル役割ドメイン
すべてのコード実行環境(scriptラベルの内部全体)または独立したjsファイルに作用します.
3、局部作用域
関数内に作用するコード環境は,局所作用ドメインである.
4、ブロックレベルの役割ドメイン
jsにはブロックレベルの役割ドメインがありません
四、変数
1、グローバル変数
グローバル役割ドメインで宣言される変数をグローバル変数(関数の外部で定義された変数)と呼びます.
2、局部変数
ローカル役割ドメインで宣言される変数をローカル変数(関数内部で定義された変数)と呼びます.
五、作用ドメインチェーン
1、定義
コードがすべて1つの役割ドメインであれば、関数の内部に書かれた局所的な役割ドメインであり、どの関数の内部にも書かれていないグローバルな役割ドメインである.
関数に関数がある場合、この役割ドメインにはまた1つの役割ドメインが誕生することができます.
「**[内部関数が外部関数変数にアクセスできる]**のこのメカニズムに基づいて,どのデータが内部関数にアクセスできるかをチェーン検索で決定することを役割ドメインチェーンと呼ぶ.
2、作用ドメインチェーン:
変数の最終的な値を検索するには、近接原則を採用します.
六、事前解析
1、jsエンジンはどのようにjsコードを実行するか
まず文法検査を行い,それから事前解析を行い,最後にコードを実行する
1、文法検査段階のエラー:
jsファイル全体が実行されません(了解)
2、コード実行段階のエラー:
現在の場所から次のjsは実行されません(理解)
2、変数の事前解析
変数の昇格(変数の事前解析):変数の宣言は現在の役割ドメインの一番上に昇格し、変数の付与値は昇格しません.
3、関数の事前解析
関数の昇格:関数の宣言は現在の役割ドメインの一番上に昇格しますが、関数は呼び出されません.
関数式の昇格?関数のリフトは存在せず、変数のリフトのみが存在します.
(拡張)関数と変数を同時に昇格させる:
//関数宣言の優先度は変数宣言より高いが、変数付与値より高くない
七、対象(object)
1、定義
オブジェクトは無秩序な関連属性とメソッドの集合であり、すべてのものがオブジェクトである.
1、字面量オブジェクトを作成する
var = {
1:'',
2:'',
:function(){...};//
}// :
オブジェクトのプロパティを呼び出します.
(1)console.log( . 1)
(2)console.log( [' 1'])
オブジェクトメソッドを呼び出します.
. ;
2、new Objectを利用してオブジェクトを作成する
var andy = new Obect();
オブジェクトのプロパティを追加するフォーマット:オブジェクト.属性=値;
3、コンストラクション関数によるオブジェクトの作成
書式:
function ( 1, 2, 3) {
this. 1 = 1;
this. 2 = 2;
this. 3 = 3;
this. = ;
}
呼び出しフォーマット:
var obj = new ( 1, 2, 3)
3、newキーワード実行プロセス★★★★
for(変数inオブジェクト名){
for ( in ) {
//
}
for (var k in obj) {
console.log(k); // k
console.log(obj[k]); // obj[k]
}