質問: 14; ``` ### 試したこと window.innerWidthをいろいろ、変えてはみましたが、何かが足りないとはわかっていますが、何が足りないかが、わからないです。 ### 補足情報(FW/ツールのバージョンなど) お返事、お待ちしております。
回答: 惜しい気はしますが、 javascriptのif文が想定通りに書けていませんし、条件文自体も指定の仕方が間違っているようです。 **{}** や、**;** は、省略しても問題なく動く部分もありますが、不具合の原因にもなります。 javascriptを書き慣れていないのであれば、省略しない方が良いと思いますよ。 ■ if文 今のコードに、{}を付けて、条件毎に処理される範囲を明確にしてみましょう。 ``` if (0 <= window.innerWidth <= 480){ var zom = 6 }else if (480 < window.innerWidth <= 620){ var zom = 8 }else if (620 < window.innerWidth <= 800){ var zom = 10 }else{ (800 < window.innerWidth )} var zom = 14; ``` 最後だけ**else**なので、{} の中身が、 Treapyonさんが予定していない箇所を囲んでいますよね。 そして、if文の処理が終わった後で、`var zom = 14;`が、必ず実行されていることも分かるかと思います。 ■ 条件文 数値の範囲を1つの条件となるような感じで`0 <= window.innerWidth <= 480`を書いたようですが、これはjsでは正しくチェックされません。 上限と下限のチェックは個別に書かなくてダメです。 正しい書き方は、`0 <= window.innerWidth && window.innerWidth <= 480`です。 ちなみにですが、数値の範囲のように見える`0 <= window.innerWidth <= 480`は、 実際には`(0 <= window.innerWidth) <= 480`として評価されています。 `0 <= window.innerWidth` は`true`、`true(数値にすると1) <= 480`は`true`なので、 今のコードはいつでも最初のif文の分岐処理が実行されています。