4.変数&5.式と文
9445 ワード
04章変数
4.1変数は何ですか。どうして必要なの?
メモリアドレスを介して値に直接アクセスすることは、致命的なエラーが発生する可能性が高い非常に危険なことです.
OSが使用している値を誤って変更すると、システムが停止する致命的なエラーが発生する可能性があります.
したがって、JavaScriptでは、開発者がメモリを直接制御することはできません.
またjavascriptで開発者がメモリを直接制御できるようにすると、問題も発生します.
メモリ値のメモリアドレスは、コードが実行されるたびにランダムに決定され、コードが実行されるまでメモリ値のメモリアドレスが分からない.
プログラミング言語は、メモリに記憶したい値を格納し、格納された値を取得および再利用するための変数と呼ばれるメカニズムを提供します.
変数とは、値を格納するために保持されるメモリ領域自体またはメモリ領域を識別するために命名された名前です.
簡単に言えば、変数は値を格納して参照するメカニズムであり、値の位置を指す象徴的な名前である.
したがって,開発者はメモリアドレスを直接介して値を格納し参照する必要はなく,変数を介して値に安全にアクセスできる.
メモリ領域に格納されている値を識別できる一意の名前を変数名(または変数名)と呼びます.
また、変数に格納される値を変数値と呼ぶ.
値を変数に格納することを割当て(代入、保存)と呼び、参照して変数に格納された値を取得します.
4.2識別子
変数名は識別子とも呼ばれます.
識別子とは、ある値を区別できる固有の名前です.
値はメモリ領域に格納されます.したがって、識別子は、メモリ領域に格納されている値を識別できる必要があります.
このため、識別子は、値を格納するメモリアドレスを記憶する必要があります.
識別子という語は変数名に限定されない.
変数、関数、クラスなどの名前は識別子です.
識別子としての変数名はメモリに存在する変数値を識別し、関数名はメモリに存在する関数を識別することができる.
4.3宣言変数
変数宣言とは、変数を生成することです.
より詳細には、メモリ値が保存されているメモリ領域を特定し、変数名と保存されているメモリ領域のアドレスを接続して、メモリ値を準備します.
変数を使用するには、宣言する必要があります.変数を宣言するときは、
var
、let
、const
のキーワードを使用します.ES 6に
let
、const
のキーワードが導入される前に、var
のキーワードはjavascriptで変数を宣言できる唯一のキーワードである.varキーワードには多くの欠点があります.varキーワードの多くの欠点の中で最も代表的なのは、ブロックレベルのスキャンをサポートせず、関数レベルのスキャンをサポートすることである.そのため,意外にもグローバル変数を宣言し,深刻な副作用を生じる.
JAvascriptエンジンでは、次の2つのステップで変数宣言が実行されます.
undefined
が初期化されます.4.4変数宣言の実行点と変数エスケープ
次の例を示します.
console.log(score); // undefined
var score; // 변수 선언문
前は変数宣言ではなく、変数を参照するコードです.したがって、
ReferenceError
が発生する可能性があります.ただし、undefined
が出力されます.これは、変数宣言が、ソースコードの各行の順序で実行されるのではなく、ソースコードの前のステップで最初に実行されるためです.
このように,変数宣言がコードの先頭に引き上げられるように,動作のJavaScript固有の特徴を変数エスケープと呼ぶ.
実際には、変数宣言に加えて、
var
、let
、const
、function
、function*
、class
のキーワード宣言を使用するすべての識別子が符号化される.すべての声明は、まず実行時の前の短いカニで実行されるからです.
4.5値の割当て
変数宣言は、まずソースコード順で実行される時点実行時より前に実行され、値の割り当てはソースコード順で実行される時点実行時に実行されます.
console.log(score); // undefined
var score;
score = 80;
console.log(score); // 80
変数宣言と値割当てを文に短縮できるため、前の例は次の例と同じです.console.log(score); // undefined
var score = 80;
console.log(score); // 80
4.6値の再割り当て
var
キーワードとして宣言された変数は、値を再割り当てできます.再割り当ては、現在の変数に格納されている値を破棄し、新しい値を保存します.
var
キーワードとして宣言された変数は、宣言と同時にundefined
に初期化されるため、厳密には、変数に初めて値を付与することも実際には再割り当てされる.値を再割り当てできず、変数に格納されている値を変更できない場合は、変数ではなく定数と呼ばれます.
constキーワード
ES 6を使用して導入されたconstキーワードで宣言された変数は、再割り当てが禁止されます.すなわちconstキーワード宣言は一度しか割り当てられない変数である.したがってconstキーワードを用いて定数を表すことができる.
4.7識別子命名規則
識別子は、次の命名規則に従う必要があります.
await
, break
, case
, catch
, class
, const
, continue
, debugger
, default
, delete
, do
, else,enum
, export
, extends
, false
, finally
, for
, function
, if
, implements
, import
, in
, instanceof
, interface
, let
, new
, null
, package
, private
, protected
, public
, return
, super
, static
, switch
, this
, throw
, true
, try
, typeof
, var
, void
, while
, with
, yield
一貫性を保つ場合は、任意の命名規則を使用できますが、JavaScriptでは、変数または関数の名前にcamel caseを使用し、コンストラクション関数およびクラスの名前にpasscal caseを使用します.ECMAScript
規格で定義されているオブジェクトと関数には、カメルボックスとパスカルボックスも使用されます.05章式と文
5.1値
値は、式の計算によって生成された結果です.
値は、さまざまな方法で生成できます.最も基本的な方法は文字を使うことです.
5.2リットル
文字とは、人が理解できる文字や約定記号で値を生成する記号法である
次のように、テキストを使用して異なるタイプの値を生成します.
ステレオの例は、高整数literal
100
浮動小数点literal 10.5
バイナリliteral 0b01000001
0 bよりも高く、8進literal 0o101
ES 6から始まる.0 oで始まる16進数文字0x41
ES 6が導入される.0 xで始まる文字列テキスト'Hello'
、"World"
不規則テキストtrue
、false
nullテキストnull
未定義テキストundefined
対象テキスト{ name: 'Lee', address: 'Sejong' }
整列テキスト[ 1, 2, 3 ]
関数テキストfunction() {}
正規表現テキスト/[A-Z]+/g
5.3式
式は値で測定できる文です.つまり、式を計算するときに新しい値が作成されるか、既存の値が参照されます.
前に紹介した文字は価値で測られています.したがって、文字も式です.
それ以外に、参照値、算術演算、または関数呼び出し等値で評価できる文は式です.
5.4ドア
ゲートはプログラムを構成する基本単位と最小実行単位である.
ドアは複数のコインで構成されています.
タグには複数の文法的意味があり、文法的にさらに区分できないコードの基本要素を指す.
文は宣言、付与文、条件文、繰返し文などに分けられます.
// 변수 선언문
var x;
// 할당문
x = 5;
// 함수 선언문
function foo () {}
// 조건문
if (x > 1) { console.log(x); }
// 반복문
for (var i = 0; i < 2; i++) { console.log(x); }
5.5セミコロンとセミコロンの自動挿入
文末のセミコロンはオプションです.
これは,自動挿入セミコロン機能(ASI)がJavaScriptエンジンでソースコードを解析する際にデフォルトでセミコロンを予測文の終了箇所に自動的に貼り付けるためである.
5.6非式文と式文
式文と非式文を区別する最も簡単な方法は、変数に割り当てることです.
var foo = var x; // SyntaxError: Unexpected token var
Reference
この問題について(4.変数&5.式と文), 我々は、より多くの情報をここで見つけました https://velog.io/@dnr6054/variables-expression-statementテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol