【JavaScript】IE11では関数の引数に初期値を設定すると「’)’がありません」エラーと出る
今やってる案件(IE11も対応範囲)で、謎のエラーに悩まされてたのが解決出来たのでメモ。
(今もIE11対応が必要なのかというのはあるけれども。。)
エラーの現象
一部のページをIEで確認するとDevtoolのコンソールタブに
’)’がありません
というメッセージが表示される。
何度も該当箇所の括弧の数を確認しても問題ない…。
解消方法
少し調べてみたところ、IE固有のバグ とのこと。
IEでは関数の引数に次のように初期値を指定すると今回のようなエラーが出るそうで。。
// 今回エラーが起きていた該当箇所のソース(一部改変) function foo ( bar = true ) { }
エラーが出ないよう関数内で処理をするよう変更したことで解消できた。
本当にIEってやつは…
function foo ( bar ) { if (bar == undefined ) { bar = true; } }
参考にしたサイト
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
- 作者:山田 祥寛
- 発売日: 2016/09/30
- メディア: 大型本