下記で「10 > d && (d = "0" + d);」はどういう意味?
・論理積?
o = new Date, d = o.getDate(); 10 > d && (d = "0" + d);
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
JavaScriptの&&
は、以下のような動作をします。
- 左辺を評価する
- 左辺が0、false、空文字列、null、undefinedならそれを返す
- 2.に当てはまらない場合、右辺を評価してその値を返す
つまり、左辺がtrueかfalseかによって、右辺が評価されるかが変わってくるので、条件分岐であるかのように使うことができます(ただし、決して読みやすいものではないので、積極的に書くことはおすすめしません)。
この例だと、「10 > dなら、d = "0" + dを実行する」ということになります。
投稿2016/02/24 06:03
総合スコア145121
0
すでに文の意味の回答はでてますが、このコードそのものについてコメントがあります。
d = o.getDate();
10 > d && (d = "0" + d);
このコードを処理あいたあとの d のデータ型についてです。
日付けが 1..9 の時は d は整数です。
日付けが 1..9 の時は d は文字列です。
データ型が条件によって変化してしまいます。これは後の処理で問題になるかもしれません。
私なら、日付けの値に左右されず、つねに文字列になるようにします。
例えばこんな風に。
d = ("0" + d).slice(-2)
↑は 頭に 0 をつけた文字列を作り、右から2文字分を切り取ることをしてます。
処理前の d の値によらず常に長さ2の文字列が d に設定されます。
if 文をつかうなら
if (d < 10) { d = "0" + d } else { d = "" + d }
投稿2016/02/26 22:11
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
文脈が分かりませんが、
10 > d
が真のときに (d = "0" + d) が評価されます。1桁なら0を最初に付加た文字列にしたいのでしょう。
wikipedia 条件演算子
が参考になると思います。
投稿2016/02/24 05:59
総合スコア1111
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/28 07:06