js距离多少天的问题

就是一个倒计时问题,页面出来的数字不能自己变化,只能刷新才能看到数字变化是问什么,求一个解决方法,谢谢

用这个定时刷新,每秒执行一次


 setInterval(function() {
       
      }, 1000);
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/246173
  • 这篇博客你也可以参考下:js数组排序,根据数组中对象的某一属性进行排序 支持数字和字符串的排序,也支持按两个属性进行排序
  • 除此之外, 这篇博客: JS中的可枚举属性与不可枚举属性的学习以及扩展中的  一、怎么判断属性是否可枚举 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •        在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。

           js中的基本包装类型的原型属性是不可枚举的,比如Object,Array,Number

           这是一个例子:

    var num = new Number();
    for(var pro in num) {
       console.log("num." + pro + " = " + num[pro]);
    }
    //此处没有输出

          它的输出结果是空的,因为Number中的内置属性是不可枚举的,所以不能被 for ... in 访问到 

          每个对象都有propertyIsEnumerable()方法,这个方法可以判断出指定的属性是否可枚举。

           用法:     
           obj.propertyIsEnumerable("属性名");

    function Person(){
        this.name = "我是实例属性"
        this.age = 19;  
    }
    var p = new Person();
    console.log(p.propertyIsEnumerable("name")); //true
    
    Person.prototype.prop = "我是原型属性" //添加一个原型属性
    console.log(p.propertyIsEnumerable("prop")); //false prop是继承自原型上的属性,所以返回的是false
    
    for(var k in p){
      console.log(k+","+p[k]);//name,我是实例属性  age,19  prop,我是原型属性
    }

        从中也可以发现,如果是对象的原型链中的属性,不管是否枚举都会返回false。
        但是 for ...in 仍然可以读出原型链中的可枚举属性 

  • 您还可以看一下 黄菊华老师的微信小程序前端程序设计和JS入门到精通课程中的 微信小程序入门到就业课(全栈课)学习说明【建议看下】小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:

    实现js倒计时并让数字实时变化可以采用setTimeout或setInterval来实现。以下是基本步骤:

    1. 在HTML中将倒计时的数字元素准备好。
    <span id="timer"></span>
    
    1. 在JS中获取需要减少的总时间(比如600秒),以及每次减少的时间(比如1秒)。
    var totalTime = 600;
    var decreaseTime = 1;
    
    1. 写一个执行倒计时的函数,其中利用setTimeout或setInterval来实现数字的变化。这里展示一个基于setInterval方法的函数,每1秒钟减少1秒钟,并将剩余总秒数显示在HTML中。
    function countdown() {
      var timerEl = document.getElementById("timer");
      var remainTime = totalTime;
      var timerId = setInterval(function() {
        if (remainTime < 0) {
          clearInterval(timerId);
          timerEl.innerText = "时间到!";
        } else {
          var min = Math.floor(remainTime / 60);
          var sec = remainTime % 60;
          timerEl.innerText = min + "分" + sec + "秒";
          remainTime -= decreaseTime;
        }
      }, 1000);
    }
    
    1. 调用函数开始倒计时。
    countdown();
    

    相关链接:

    • MDN setTimeout
    • MDN setInterval