22日目-2022.03.22
今日の勉強の内容
(モダンJavaScriptチュートリアル復習)
オブジェクトのデフォルト
混同または再注意が必要な内容
オブジェクト構成に指定した関数をメソッドと呼びます.
メソッドは、オブジェクトに格納された情報にアクセスできる必要があります.ただし、メソッドの内部では、このキーワードを使用してオブジェクトにアクセスできます.
JavaScriptでは、この機能をすべての関数で使用できます.
この値は実行時に決定されます
この値は、関数を宣言するときに使用できますが、関数を呼び出す前に指定しません.
矢印関数には独自のthisはありません.矢印関数でthisを使用すると、外部からこの値が取得されます.
コンストラクション関数は通常の関数ですが、関数名の頭文字は大文字で、区切りに使用されます.
コンストラクション関数はnew演算子とともに呼び出され、newとともに呼び出されると内部で暗黙的にthisが作成され、最後にthisが返されます.
すべての関数は、コンストラクション関数/複数の類似オブジェクトの作成に使用できます.
翻訳文法?左側の評価ターゲットがnullかundefinedかを確認し、nullまたはundefinedでない場合は評価を続行します.
?.なんだ.左側の評価が不要な場合は、
存在しなければならない値です.存在しないと、エラーが見つかりにくくなります.
ユニーク識別子を作成するための構成部品
let id1 = Symbol("id");
let id2 = Symbol("id");
alert(id1 == id2); // false
戻る必要がある場合は、toString()メソッド
(Core JavaScriptベース)
<実行コンテキスト>
スコットランド識別子の有効範囲
スキャンチェーンは、内側から外側へ順次検索されます.
宣言時のLexicalEnvironmentを見つけ、最後にグローバルコンテキストのLexicalEnvironmentです.
各外部環境リファレンスは、宣言時に存在するLexicalEnvironmentのみを参照するため、最近の要素からアクセスできます.
複数のブランチで同じ識別子が宣言されている場合は、ブランチチェーンで最初に検出された識別子にのみアクセスできます.
特定の関数で変数を宣言する場合、グローバルスペースで宣言された同じ名前の変数にアクセスできません.これが変数の隠匿化です.
実行コンテキストの作成
VariableEnvironmentとLexicalEnvironmentの構成は同じです.
この2つの関数は、収集パラメータ名、変数の識別子、宣言関数の関数名などの環境記録、外部環境参照から構成されます.
これは、実行コンテキストをアクティブにするときに指定したthisを保存します.
値は、関数を呼び出す方法によって異なり、指定されていない場合はグローバルオブジェクトが保存されます.
コード内の変数にアクセスするには、次の手順に従います.
1. 현재 컨텍스트의 LexicalEnvironment를 탐색해 발견되면 그값 반환
2. 발견 못하면 outerEnvironmentReference에 담긴 LexicalEnvironment를 탐색.
3. 전역컨텍스트의 LexicalEnvironment에서도 찾지 못하면 undefined
課題
エラーを回避するために
function makeUser() {
return {
name: "John",
ref: this
};
};
let user = makeUser();
alert( user.ref.name );
->
function makeUser() {
return {
name: "John",
ret() {
return this;
}
};
}
let user = makeUser();
alert(user.ref().name); // John
この値を使用すると、オブジェクトが定義されていないためエラーが発生します.2.calculatorという名前のオブジェクトを作成し、3つの方法を実装してみます.
read()는 프롬프트 창을 띄우고 더할 값 두 개를 입력받습니다. 입력받은 값은 객체의 프로퍼티에 저장합니다.
sum()은 저장된 두 값의 합을 반환합니다.
mul()은 저장된 두 값의 곱을 반환합니다.
let calculator = {
sum() {
return this.a + this.b;
}
mul() {
return this.a * this.b;
}
read() {
this.a = +prompt("첫번째 값","");
this.b = +prompt("두번째 값","");
}
};
calculator.read();
alert( calculator.sum() );
alert( calculator.mul() );
readに+を加えて、プロンプト値を数値にします.学習ソース
JavaScript。info
コアJavaScript-鄭在南-知音
上の内容は勉强の中で私が理解した内容で、いくつか间违った内容があるかもしれません.
灰毒中発見時の修正
Reference
この問題について(22日目-2022.03.22), 我々は、より多くの情報をここで見つけました https://velog.io/@abo7326/22일차-2022.03.22テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol