JavaScript リテラル
プログラミング言語では、3.14 のようにリテラルは定数です。
数値リテラルには、整数、小数、または科学表記法 (e) を使用できます。
3.14 1001 123e5
文字列リテラルは二重引用符または一重引用符で記述することができます:
"John Doe" 'John Doe'
計算に使用される式リテラル:
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 では、キーワード function を使用して関数を定義します。
関数は宣言によって定義することも、式として定義することもできます。
関数宣言
前のチュートリアルでは、関数宣言の構文をすでに学習しました:
function functionName(parameters) { 执行的代码 }
関数は宣言された直後には実行されませんが、必要なときに呼び出されます。
例
function myFunction(a, b) { return a * b; }
実行可能な JavaScript ステートメントを区切るためにセミコロンが使用されることに注意してください。
関数宣言は実行可能なステートメントではないため、セミコロンで終わりません。
関数式
JavaScript 関数は式を通じて定義できます。
関数式は変数に保存できます:
例
var x = function (a, b) {return a * b};
関数式を変数に保存した後、変数を関数としても使用できます。
例
var x = function (a, b) {return a * b}; var z = x(4, 3);
上記の関数は実際には匿名関数です (関数には名前がありません)。
関数は変数に格納され、通常は変数名を通じて呼び出されます。
注 上記の関数は実行ステートメントであるため、セミコロンで終わります。
Function() コンストラクター
上の例では、関数がキーワード関数を通じて定義されることを学びました。
関数は、組み込みの JavaScript 関数コンストラクター (Function()) を通じて定義することもできます。
例
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
実際には、コンストラクターを使用する必要はありません。上の例は次のように記述できます:
例
var myFunction = function (a, b) {return a * b} var x = myFunction(4, 3);
注 JavaScript では、多くの場合、new キーワードの使用を避ける必要があります。
関数ホイスティング(ホイスティング)
「ホイスティング」については、前のチュートリアルですでに学習しました。
巻き上げは、現在のスコープを前面に巻き上げる JavaScript のデフォルトの動作です。
ホイスティングは変数宣言と関数宣言に適用されます。
したがって、関数は宣言前に呼び出すことができます:
myFunction(5); function myFunction(y) { return y * y; }
式を使用して関数を定義する場合、ホイスティングはできません。
自己呼び出し関数
関数式は「それ自体を呼び出す」ことができます。
自己呼び出し式は自動的に呼び出されます。
これは、式の直後に () が続く場合に自動的に呼び出されます。
Y は宣言された関数自体を呼び出すことはできません。
かっこを追加して関数式であることを示します:
例
(function () { var x = "Hello!!"; // 我将调用自己 })();
上記の関数は、実際には匿名の自己呼び出し関数 (関数名なし) です。
関数を値として使用できます
値として使用される JavaScript 関数:
例
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript 関数は式として使用できます:
例
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
関数はオブジェクトです
JavaScript で typeof 演算子を使用して関数の型を決定すると、「function」が返されます。
ただし、JavaScript 関数をオブジェクトとして記述する方が正確です。
JavaScript 関数にはプロパティとメソッドがあります。
argument.length プロパティは、関数呼び出しプロセスによって受け取られた引数の数を返します:
例
function myFunction(a, b) { return arguments.length; }
toString() メソッドは関数を文字列として返します:
例
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();