(缩短这个)Javascript计时 window.onload=function(){ 函数nowTime(){ var s=0,m; (功能(){ s++; m=数学楼层(s/60); document.getElementById('t').innerHTML=(Math.floor(m/60))+':'+(m%60)+':'+(s%60); setTimeout(arguments.callee,1000); })();} nowTime();}

(缩短这个)Javascript计时 window.onload=function(){ 函数nowTime(){ var s=0,m; (功能(){ s++; m=数学楼层(s/60); document.getElementById('t').innerHTML=(Math.floor(m/60))+':'+(m%60)+':'+(s%60); setTimeout(arguments.callee,1000); })();} nowTime();},javascript,performance,Javascript,Performance,这用于计时,即计算经过的秒数。 它显示在HH:MM:SS中。 有谁能缩短或加速它(我指的是更好的性能) 此代码每15分钟延迟100毫秒。以下答案具有类似的时间延迟。这段时间并不重要。如果需要,校准时间非常容易。-1行 <script> window.onload=function(){ function nowTime(){ var s=0,m; (function(){ s++; m=Math.floor(s/60); document.getElementById('t').in

这用于计时,即计算经过的秒数。
它显示在HH:MM:SS中。
有谁能缩短或加速它(我指的是更好的性能)

此代码每15分钟延迟100毫秒。以下答案具有类似的时间延迟。这段时间并不重要。如果需要,校准时间非常容易。

-1行

<script>
window.onload=function(){
function nowTime(){
var s=0,m;
(function(){
s++;
m=Math.floor(s/60);
document.getElementById('t').innerHTML=(Math.floor(m/60))+':'+(m%60)+':'+(s%60);
setTimeout(arguments.callee,1000);
})();}
nowTime();}
</script>
<div id="t"></div>
编辑:删除冗余函数定义>调用(-3行)

-一行

<script>
window.onload=function(){
function nowTime(){
var s=0,m;
(function(){
s++;
m=Math.floor(s/60);
document.getElementById('t').innerHTML=(Math.floor(m/60))+':'+(m%60)+':'+(s%60);
setTimeout(arguments.callee,1000);
})();}
nowTime();}
</script>
<div id="t"></div>
编辑:删除冗余函数定义>调用(-3行)


将所有内容写入一行将减少行数:

window.onload = function () {
        var s = 0,
            m;
        (function () {
            m = Math.floor(s / 60);
            document.getElementById('t').innerHTML = (Math.floor(m / 60)) + ':' + (m % 60) + ':' + (++s % 60);
            setTimeout(arguments.callee, 1000);
        })();
}
window.onload=function(){function nowTime(){var s=0,m;(function(){s++;m=Math.floor(s/60);document.getElementById('t')。innerHTML=(Math.floor(m/60))+':'+(m%60)+:'+(s%60);setTimeout(arguments.callee,1000);}();}nowTime();}

在一行中写入所有内容将减少行数:

window.onload = function () {
        var s = 0,
            m;
        (function () {
            m = Math.floor(s / 60);
            document.getElementById('t').innerHTML = (Math.floor(m / 60)) + ':' + (m % 60) + ':' + (++s % 60);
            setTimeout(arguments.callee, 1000);
        })();
}
window.onload=function(){function nowTime(){var s=0,m;(function(){s++;m=Math.floor(s/60);document.getElementById('t')。innerHTML=(Math.floor(m/60))+':'+(m%60)+:'+(s%60);setTimeout(arguments.callee,1000);}();}nowTime();}
  • 不要使用
    参数。被调用方
    ,它已被弃用
  • 缓存DOM元素
  • Math.floor可以替换为
    ~
  • 分配变量是一个表达式,它返回RHS的值,因此您可以在第一次使用
    m
    时将
    m=~(++s/60)
  • 然后你可以丑化它(154个字符):

    工作演示:

  • 不要使用
    参数。被调用方
    ,它已被弃用
  • 缓存DOM元素
  • Math.floor可以替换为
    ~
  • 分配变量是一个表达式,它返回RHS的值,因此您可以在第一次使用
    m
    时将
    m=~(++s/60)
  • 然后你可以丑化它(154个字符):

    工作演示:

    给您,先生:

    window.onload=function(){var n,t=0,e=document.getElementById("t")
    !function o(){e.innerHTML=~~((n=~~(++t/60))/60)+":"+n%60+":"+t%60,setTimeout(o,1e3)}()}
    
    我选择了一个输入元素来发送文本结果。我不确定您针对的是哪种类型的元素,因此如果需要,您可能需要更改为
    node.value
    node.textContent

    给您,先生:

    window.onload=function(){var n,t=0,e=document.getElementById("t")
    !function o(){e.innerHTML=~~((n=~~(++t/60))/60)+":"+n%60+":"+t%60,setTimeout(o,1e3)}()}
    

    我选择了一个输入元素来发送文本结果。我不确定您针对的是哪种类型的元素,因此如果需要,您可能需要将其更改为
    node.value
    node.textContent

    这是一个代码高尔夫问题,还是出于任何其他原因,您希望这样做?为什么要定义然后调用您的函数?“加速它(我的意思是减少行数)”,所以性能不是这里的一个指标?您知道,即使是短代码,如果出错也会导致糟糕的性能吗?短代码并不意味着快代码。还是你真的需要加快速度?不过,通常的方法是编写可读性更强的代码。短代码通常杂乱无章,无法阅读……这是一个代码高尔夫问题,还是出于其他原因需要这样做?为什么定义并调用函数?“加速它(我的意思是减少行数)”,所以性能不是一个衡量标准?您知道,即使是短代码,如果出错也会导致糟糕的性能吗?短代码并不意味着快代码。还是你真的需要加快速度?不过,通常的方法是编写可读性更强的代码。短代码通常杂乱无章,无法阅读……这并不是我真正需要的。你可以看到它以前是一行代码,我只是把它分成几行粘贴到这里,然后问这个问题,实际上我并不需要它。你可以看到它过去是一行代码,我只是把它分成几行粘贴到这里,然后问这个问题
    var node=document.querySelector("#id");
    var s=0,t={h:3600,m:60,s:1};
    setInterval(function(){
      var r=s++;
      node.value=['h','m','s'].map(function(k){var v=Math.floor(r/t[k]);r-=v*t[k];return v+k;}).join("");
    },1000);