JavaScriptにおける関数の左側の式
次のコードを考えてみましょう:
+function func() {
console.log('!');
}
すでにご存知のように、この関数は名前が付けられているにもかかわらず (名前の有無は全く基準ではないことはすでに確認しました)、 関数式(Function Expression)です。 このプラス記号を取り除くと、関数宣言(Function Declaration)になります:
function func() {
console.log('!');
}
関数の前の行にプラス記号+を配置してみましょう。
再び関数式(Function Expression)になります:
+
function func() {
console.log('!');
}
今度はプラス記号の後に数字1とセミコロンを置くと、
この関数は関数宣言(Function Declaration)になります:
+1;
function func() {
console.log('!');
}
なぜこうなるのか:最初の行はセミコロンで終了する 一つの完全な命令だからです。したがって、この命令は 私たちの関数に全く影響を与えません。
実際にはセミコロンは削除できます。 結局のところ、JavaScriptではセミコロンは必須ではないからです。 関数は依然として関数宣言(Function Declaration)のままです:
+1
function func() {
console.log('!');
}
しかし、1の後にもう一つプラス記号を付けると、
関数は関数式(Function Expression)になります:
+1+
function func() {
console.log('!');
}
なぜこうなるのか:最初の行は不完全な式だからです。 プラス記号があり、その後には何もありません。 したがって、JavaScriptインタープリターは、 このプラス記号が次の行、つまり私たちの関数に 関係していると判断します。
最初の行に完全な式がある場合、 JavaScriptは自動的にセミコロンを挿入し、 その式は私たちの関数に全く影響を与えません。
提示されている関数が関数宣言(Function Declaration)か 関数式(Function Expression)かを判断してください:
-
function func() {
console.log('!');
}
提示されている関数が関数宣言(Function Declaration)か 関数式(Function Expression)かを判断してください:
-1;
function func() {
console.log('!');
}
提示されている関数が関数宣言(Function Declaration)か 関数式(Function Expression)かを判断してください:
-1
function func() {
console.log('!');
}
提示されている関数が関数宣言(Function Declaration)か 関数式(Function Expression)かを判断してください:
1
function func() {
console.log('!');
}
提示されている関数が関数宣言(Function Declaration)か 関数式(Function Expression)かを判断してください:
-1-
function func() {
console.log('!');
}