宣言(const
、let
、ver
)の違いについて知りたいです。
スコープの範囲についての一般的な説明は一読したつもりですが、整合しない問題にぶつかってしまいました。
下記問題が発生する理由がご説明できる方はいらっしゃいますでしょうか?
###発生している問題
「クリックしたdata
」を取得し、「関数sample(clicked_sample)
」に送り、if
で条件分岐しています。
この条件分岐のところで、「変数mes
」が取得できません。
しかし、宣言をconst
やlet
でなく、var
にすれば取得できます。
これはどのような理由によるのでしょうか?
html
1<button type="button" data-sample="question">question</button> 2<button type="button" data-sample="answer">answer</button>
script
1$(function(){ 2 3function sample(clicked_sample){ 4 console.log('クリックしたのは' +clicked_sample+ 'です'); 5 if( clicked_sample == 'question' ){ 6 const mes = '質問です'; 7 }else if( clicked_sample == 'answer' ){ 8 const mes = '回答です'; 9 } 10 console.log(mes); // ここで mes を取得したければ var で宣言しなければならないのはなぜ? 11} 12 13$('button').click(function() { 14 const clicked_sample = $(this).attr('data-sample'); 15 sample(clicked_sample); 16}); 17 18}); 19

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/07 03:33