" if,else if和else"我的代码上的条件被错误地读取

时间:2015-10-16 16:55:05

标签: javascript

    <script type="text/javascript">
    function load2() {
            var objDate2 = new Date();
            var hour = objDate2.getHours()
            var minute = objDate2.getMinutes()
            if (hour === 12 | 24 && minute < 24 && minute >= 12){
                document.getElementById("Hour").style.animation = "rotate1 43200s linear 0s infinite normal";
            }
            else if (hour === 12 | 24 && minute < 36 && minute >= 24){
                document.getElementById("Hour").style.animation = "rotate2 43200s linear 0s infinite normal";
            }
            else{
                document.getElementById("Hour").style.animation = "rotate 43200s linear 0s infinite normal";
            }
        }
</script>

问题是声明小时=== 12 | 24&amp;&amp;分钟&lt; 36&amp;&amp;分钟&gt; = 24被错误地读取。

3 个答案:

答案 0 :(得分:2)

|是一个按位运算符,用于||逻辑OR运算。

12 | 24 = 28,这在你的代码中没有意义。

替换

if (hour === 12 | 24 && minute < 24 && minute >= 12){

if ((hour === 12 || hour === 24) && minute < 24 && minute >= 12){

答案 1 :(得分:2)

您使用按位运算符表示其比较小时为(12 | 24)。使用||用于逻辑比较。

答案 2 :(得分:2)

您使用|代替||||or operator|bitwise or operator

所以这是编辑过的代码:

function load2() {
        var objDate2 = new Date();
        var hour = objDate2.getHours()
        var minute = objDate2.getMinutes()
        if (hour === 12 || 24 && minute < 24 && minute >= 12){
            document.getElementById("Hour").style.animation = "rotate1 43200s linear 0s infinite normal";
        }
        else if (hour === 12 || 24 && minute < 36 && minute >= 24){
            document.getElementById("Hour").style.animation = "rotate2 43200s linear 0s infinite normal";
        }
        else{
            document.getElementById("Hour").style.animation = "rotate 43200s linear 0s infinite normal";
        }
    }