JavascriptのUnexpected token : { の例
var hoge = 1; If (hoge === 1 ){ fnc(); }
これで
If (hoge === 1 ){
この部分の{
にUnexpected tokenエラーがでる。
お分りいただけただろうか・・・
原因:Javascriptのifのiは小文字です。
本当にくだらないとです。 何時間無駄にしたか分りません。 私みたいな残念な人は少ないとは思いますが、同じ悲しみを背負わないように書き記します。
ifを小文字で書いてしまう理由ですが、VBAが原因だと思い当たりました。 最近まで仕事でVBAを使っていたのですが、なにかと大文字始まりです。
みても全く違和感がないので、なかなか私は気づきません。
VBAバージョン
DIm hoge As Long If hoge = 1 Then fnc End If
VBAの経験があってJavascriptを触る方は、他にもNewやらElse、比較演算子について気をつけなければいけません。 そもそもセミコロンがないところからもう・・・ VBAを触っていた頃から思っていましたが、なぜこうVBAは、なぜこうもはっちゃけた文法をしているのでしょうか。 他のメジャーな言語に寄せることは難しかったのでしょうか・・・ もしくは、ExcelでJavascriptをOKにして、APIの形でExcelやらのオブジェクトを扱えるようにしてもいいのではないでしょうか。
軽くググってみたところ、COBOLも大文字ですね。というか、見つけた例は全部大文字で書かれていましたが、COBOLは小文字を書いてはいけないのでしょうか・・・
と思って調べたら、大文字と小文字の区別がなく、昔の慣習で大文字で全てコーディングする人が多いということでした。
思い返すと、ダラダラコードを眺めてミスを見つけようとしていたのが悪かったと思っています。 そのせいで無駄に時間が流れました。 次回からは、しっかり別ファイル作って切り分けを行うなどして、もっと早く見つけられるようにします。
最高に勿体無い時間でしたが、きっと成長に繋がったと信じています。 はぁ
ちなみに、Unexpected token は、「なんか理解できないのが急に出て来てるよ」ということみたいです。 分りにくい原因でよくあるのが、大文字が文字列以外の場所に混じっているパターンみたいです。 次回このエラーが出た際には、全角スペース、やエラーで表示された記号や文字列の全角文字は検索するようにしようと思います。