アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptの勉強を始めて間もなく、以下のサイトを参考に神経衰弱をjQueryで作ってみてます。
そこで、コードの2行目と3行目に値がセットされてない変数が記述されている部分がどのような意味なのか分からず、こちらで質問させていただきました。
(値がセットされてない変数の使い方があることを、始めて知りました。。)

▼参考サイト
http://unirry.com/jquery_3d_card_shinkeisuijyaku …

▼コード
```
// 変数定義
var list = $("#cardlist li");
var card1,card2;  ←こちらの変数です
var num1,num2;  ←こちらの変数です
var first = 1;
var liarr = [];
var flag = 0;

// カードのシャッフルとマウスオーバー関数のよびだし
cardSort();
cardHover();

// カードをシャッフルする関数
function cardSort() {
// 配列を空にする、flagを0にする
liarr.length = 0;
flag = 0;
// listの中のhtmlを配列に格納
list.each(function() {
liarr.push($(this).html());
});
// 格納した配列をランダムにする
liarr.sort(function() {
return Math.random() - Math.random();
});
// ulの中身をいったん削除
$("#cardlist ul").empty();
// ランダムになった配列をappendする
for(i=0; i < liarr.length; i++) {
$("#cardlist ul").append('<li>' + liarr[i] + '</li>');
}
// フェードイン
$("#cardlist ul li").animate({"opacity":"1"}, 500, "easeOutQuart")
}
```

A 回答 (2件)

まぁjavascriptの場合、宣言しなければwindowの変数になるので


グローバル変数はvarしなくても変わらなそうですよね
逆にvarしてもundefinedのままです。
ただしせっかく宣言するなら初期値を指定したほうがよいですね

<script>
(function(){a=1;})();
(function(){window.b=2;})();
console.log(a+b);
var x;
console.log(x);
</script>
    • good
    • 0
この回答へのお礼

ありがとうございます!
記載していただいたコードを実際にデバックしてみたいと思います…!

お礼日時:2016/12/06 21:26

こんにちは



var宣言には変数の宣言、初期値の設定などのほかに、変数のスコープを明確化する働きがあります。
ご提示の例の場合は、グローバルな変数宣言のようですので、宣言がなくても機能的には大きな違いは無いようですが・・・

初期値の有無にかかわらず、変数を宣言しておくことは良い習慣だと思います。
(以下をご一読あれ)
https://developer.mozilla.org/ja/docs/Web/JavaSc …
    • good
    • 0
この回答へのお礼

ありがとうございます!
ご丁寧に参考リンクまで、大変勉強になりました!

お礼日時:2016/12/06 21:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!