JavaScriptエスケープ
2756 ワード
護衛とは何ですか?
변수 선언이 함수 또는 전역 코드의 상단에 이동하는 것
のような行為を吊り下げと呼ぶ.ここで学ぶ主な概念の中で、2つの語に集中したほうがいい.
ハウスティンの相手はどれらがありますか?
関数宣言(function)
function z() {}
関数は反発し、宣言と割り当てが同時に発生します.この場合、関数宣言式を他の関数式と混同することはできません.
(A.関数式)
var z = function() {}
(B.矢印関数)const z = () => {}
,(A)変数に割り当てられた関数式は割り当てられません.理由は文章の下部の変数宣言記号からわかります.
(B)も同じ理由で選ばれ、発表されただけで3つの違いがあります.
3つの違いは以下の通りです
宣言変数(var、let、const)
多くの文章は、入る前にvarだけが見られ、letとconstは見られないと言っています.ある意味では、現象はそう見えるかもしれません.
すべてのシースが適用され、TDZが参照できるかどうかの違いがあります.
以下の3段階に分けて説明する.
1)メモリに初期起動として登録する場合
2)中間-メモリ登録と実際のコード位置の間
3)コード-実際のコードの位置
var
var a = 1;
1)初期化-シース宣言(a)、初期化未定義2)中間-a呼び出し、未定義
3)コード-値(1)配分
let
let b = 1;
1)初期化-シース宣言(b)、初期化されていません.2)中間-b呼び出し時に参照エラー(TDZ)
3)コード-初期化し、値を割り当てます(1)
const
const c = 1;
1)初期化-シース宣言(c)、初期化されていません.2)中間-c呼び出し時に参照エラー(TDZ)
3)コード-初期化し、値を割り当てます(1)
コードから見ると、分かりやすいようです.
console.log(a); // undefined
console.log(b); // Reference Error
console.log(c); // Reference Error
var a = 1;
let b = 2; // End of TDZ (for b)
const c = 3; // End of TDZ (for c)
このコードを見ると疑問に思うかもしれません.letとconstは何が違いますか?varを含めて、簡単に説明すると、再宣言、再割り当て、範囲に違いがあります.
varは再宣言したり、再割り当てしたりすることができます.範囲はFunctionです.
letは(X)を再宣言することはできず,(O)を再割り当てすることができる.範囲はblockです.
constは(X)を再宣言することはできず、(X)を再割り当てすることはできません.範囲はblockです.
コードを見てみましょう.次のようにします.
var a = 1;
var a = 2; // (O) 재선언
a = 3; // (O) 재할당
let b = 1;
let b = 2; // (X) 재선언, SyntaxError
b = 3 // (O) 재할당
const c = 1;
const c = 2; // (X) 재선언, SyntaxError
c = 3; // (X) 재할당, SyntaxError
の最後の部分
オブジェクトをcontとして宣言すると、オブジェクトの内部内容を変更できます.Object.freezeにより厳格モードでこのような状況を防止することができる.Object.freezeは浅いフリーズなので、object内部のobjectを深くフリーズするには、すべてのobjectを再帰的にフリーズする必要があります.
知っていることをもとに書き、ついでに復習して、MDNや様々なサイトを参考にして、新しい内容に対する感覚がますます強くなってきました.
リファレンス
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/const
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
Reference
この問題について(JavaScriptエスケープ), 我々は、より多くの情報をここで見つけました https://velog.io/@lhsljh123/JavaScript-호이스팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol