###疑問
関数宣言「fuga」を、関数リテラル「hoge」にする場合の質問です。
「fuga」でやっている『fuga2の実行後にfuga2を定義する』という順番は、特に問題ないですよね。
しかし「hoge」をこの順番で書くとconst未宣言エラーになるのはどうしてですか?
➀「hoge」でやっている『hoge2の実行後にhoge2を定義する』という順番は、「fuga」と同様なのになぜできないのか理由がわかりません。
➁それにconstはそのかっこ内であれば参照できる、という理解なので、const未宣言エラーになる理由がわかりません。
以上2点の疑問を解消したいです。
宜しくお願い致します。
###関数宣言「fuga」
js
1console.log( 'fuga1を実行', fuga1('world') ); 2 3function fuga1( str ){ 4 let p = '<p>helo</p>' 5 p += fuga2(str); 6 return p; 7} 8 9function fuga2( str ){ 10 return '<p>'+str+'</p>'; 11}
###関数リテラル「hoge」
js
1console.log( 'hoge1を実行', hoge1('world') ); 2 3function hoge1( type ){ 4 5 let p = '<p>helo</p>' 6 7 /* hoge2はここで宣言しないといけない */ 8 9 p += hoge2(type); 10 11 const hoge2 = function( str ) { /* ここで宣言するエラー */ 12 return '<p>'+str+'</p>'; 13 }; 14 15 return p; 16 17}
回答1件
あなたの回答
tips
プレビュー