状況と質問内容
以下の「該当コードとエラー画面」にあるコードを実行すると、safariでfunction
を使用した場合のみReferenceError: Can't find variable: switcher
と表示されてエラーになりました。
スコープなどの問題かと考えたのですが、あまりJavaScriptに詳しくなく、結論が出なかったため質問させていただきました。
以下質問内容になります。
質問1.
私の認識では、構文にも特に間違った部分はないと考えているのですが、これはコードの書き方の問題なのか、safari、chromeどちらかのブラウザのバグなのかどちらでしょうか?
コードが悪い場合、正しいコードに直していただけないでしょうか。
質問2. function
とアロー関数では何が違うのでしょうか?
該当コードとエラー画面
デモ: CodePen(https://codepen.io/w-muro/pen/GRWrPom?editors=1111)
javascript
1const func = document.querySelector(".function"); 2if(func){ 3 const say = "Hello" 4 const switcher = true 5 function greeting(){ 6 if(switcher){ 7 console.log(say); 8 } 9 } 10 func.addEventListener("click", greeting); 11} 12 13// arrow ============================================= 14const arrow = document.querySelector(".arrow"); 15if(arrow){ 16 const say = "Hello" 17 const switcher = true 18 const greeting = () => { 19 if(switcher){ 20 console.log(say); 21 } 22 } 23 arrow.addEventListener("click", greeting); 24}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/21 11:23 編集
2021/05/21 11:17
2021/05/21 11:47