intermediate value … is not a functionというエラーメッセージが表示されてしまう場合、どのような原因が考えられるでしょうか。
原因はJavaScriptが匿名関数の引数と見なした場合のエラーになります。
目次
【JavaScript】intermediate value is not a functionというエラーメッセージが表示される!セミコロンは省略しないほうがよい
多くの場合、下記のようにセミコロンの打ち間違い(切れ目の曖昧さ)によるプログラミング上のミスが考えられます。
let test = function(){ /* 何かしらのソースコード*/ } //末尾にセミコロンを省略している let test = function(){ /* 何かしらのソースコード*/ }; //正しいソースコード (function(){ /* 何かしらのソースコード*/ })(); //未定義値は関数ではないので実行できない
セミコロンは省略しないほうがよい
JavaScriptはセミコロンを省略して記述することも可能ですが、結果的に上記のようなエラーが発生してしまうことも考えられるので、セミコロンは省略しないほうがよいでしょう。
console.log('JavaScriptでセミコロンは省略しないほうがよいでしょう') //あまり良くない console.log('JavaScriptでセミコロンは省略しないほうがよいでしょう'); //良い
1つの文が長いときは改行する
セミコロンは省略しない場合でも、1つの文がどうしても長くなるケースがあるでしょう。
そんなときは改行しましょう。しかし、改行しても下記のようにエラーが起こる場合はあります。注意しましょう。
/* 誤っているソースコード */ function square(height, width){ return height * width; } console.log(square(4,4)); //未定義値をreturnしてしまうのでエラー /* 正しいソースコード */ function square(height, width){ return height * width; //改行を正しく配置 }