JavaScriptリテラル
リテラル値:固定値。これは、リテラルの意味を意味します。
- 数値リテラル:
整数または小数、あるいは科学的記数法にすることができます。
3.14
1001
123e5
- 文字列リテラル:
一重引用符または二重引用符を使用できます。
"John Doe"
"John Doe"
-
ブールリテラル:
trueとfalseの2つの値のみがあります。 -
式リテラル:
計算に使用されます。演算子を使用して、算術演算子、ビット演算子、条件演算子、比較演算子、論理演算子などの計算を実行します。
5 + 6
5 * 10
- 配列リテラル:
配列を定義します
[40, 100, 1, 5, 25, 10]
- オブジェクトリテラル:オブジェクトを
定義します
{
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
}
- 関数リテラル:関数を定義します
function myFunction(a, b) {
return a * b;
}
JavaScript変数
変数はデータを格納するためのコンテナであり、プログラムの実行中に変更したり、再度割り当てたりすることができます。
変数を宣言する
JavaScriptでは、var
ステートメントを使用して変数を宣言します。
[例1]
varステートメントでは、1つ以上の変数を宣言するか、変数に値を割り当てることができます。割り当てられていない変数は、未定義(未定義)の値に初期化されます。複数の変数を宣言する場合は、コンマ演算子で区切る必要があります。
var a; //声明一个变量
var a,b,c; //声明多个变量
var b = 1; //声明并赋值
document.write(a); //返回 undefined
document.write(b); //返回 1
【例2】
JavaScriptでは、同じ変数を繰り返し宣言したり、変数の値を繰り返し初期化したりすることができます。
1. var a = 1;
2. var a = 2;
3. var a = 3;
4. document.write(a); //返回 3
注:
非厳密モードでは、JavaScriptを使用すると、変数を宣言せずに直接割り当てることができます。これは、JavaScriptインタープリターが変数を暗黙的に自動的に宣言できるためです。暗黙的に宣言された変数は、常にグローバル変数として使用されます。strictモードでは、変数を使用する前に宣言する必要があります。
変数の割り当て
等号=
演算子を使用して、変数に値を割り当てます。等号の左側が変数で、右側が割り当てられた値です。
【例】
可変プロモーション。JavaScriptは、宣言された変数をコンパイル前の期間に前処理しますが、変数の割り当ては、コンパイル前の期間ではなく、JavaScriptの実行期間中に行われます。
1. document.write(a); //显示undefined
2. a =1;
3. document.write(a); //显示 1
4. var a;
変数宣言は最後に配置され、代入操作は先頭に配置されます。JavaScriptはコンパイル前の期間中に変数宣言ステートメントを事前に解析しているため、コードの最初の行は変数値を読み取るときに例外をスローしませんが、初期化されていない値undefinedを返します。コードの3行目は、割り当て操作の後に読み取られるため、番号1として表示されます。
ヒント:
JavaScriptエンジンを解析する方法は、最初にコードを解析し、宣言されたすべての変数を取得してから、1行ずつ実行することです。このようにして、宣言されたすべての変数がコードの先頭に昇格されます。これは、変数昇格(ホイスト)と呼ばれます。
変数スコープ
変数スコープ(スコープ)は、プログラムでアクセスできる変数の有効範囲を指し、変数の可視性とも呼ばれます。
JavaScript変数は、グローバル変数とローカル変数に分けることができます。
- グローバル変数:変数はページスクリプト全体に表示され、自由にアクセスできます。
- ローカル変数:変数は宣言された関数内でのみ表示でき、関数外へのアクセスは許可されていません。
【例1】
グローバル変数とローカル変数の関係
1. var a = 1; //声明并初始化全局变量
2. function f(){ //声明函数
3. document.write(a); //显示undefined
4. var a = 2; //声明并初始化局部变量
5. document.write(a); //显示 2
6. }
7. f(); //调用函数
同じ名前のローカル変数aが関数内で宣言されているため、JavaScriptはこの変数を使用して、コンパイル前の期間中に関数内のグローバル変数の影響をオーバーライドします。実行の初期段階では、ローカル変数aは割り当てられていないため、関数のコードの最初の行がローカル変数aの値を読み取るとき、ローカル変数aの値は未定義です。実行が関数の2行目に達すると、ローカル変数に値2が割り当てられるため、3行目には2として表示されます。
[例2]
ローカル変数を明示的に宣言しないことの結果を示します
1. var jQuery = 1;
2. (function () {
3. jQuery = window.jQuery = window.$ = function(){};
4. })()
5. document.write(jQuery); //显示函数代码:function(){}
したがって、関数本体でグローバル変数を使用することは危険な動作です。このような問題を回避するには、varステートメントを使用して関数本体でローカル変数を明示的に宣言する習慣を身に付ける必要があります。
変数型
JavaScriptは弱い型の言語であり、変数型の仕様は比較的緩いです。具体的なパフォーマンスは次のとおりです。
- 変数の型分類は厳密で不明確ではないため、恣意性があります。
- 変数を宣言する場合、タイプを指定する必要はありません。
- 使用プロセスは厳密ではなく、変数タイプは必要に応じて自動的に変換できます。
- 変数の変換と型チェックのための統一された標準化された方法がないため、開発効率が低くなります。
長所と短所:
- 利点:柔軟に使用でき、コードの記述が簡単になります。
- 短所:実行効率が低く、大規模なアプリケーションを開発するとプログラムのパフォーマンスに影響が出ます。