资讯专栏INFORMATION COLUMN

不知道的javascript

Jaden / 2429人阅读

摘要:一的第三个及更多的参数定时器启动时候,第三个以后的参数是作为第一个的参数传进去。中规定的最小时间不是,而是。另外,如果笔记本电脑处于电池供电状态,和以上的版本,会将时间间隔切换到系统定时器,大约是毫秒。

一.setTimeout

1.setTimeout的第三个及更多的参数

//定时器启动时候,第三个以后的参数是作为第一个func()的参数传进去。
function timeout(ms) {
        return new Promise((resolve, reject) => {
            setTimeout(resolve, ms, "我是setTimeout的第三个参数,将作为setTimeout的第一个参数的参数传递进去")
        })
}
timeout(3000).then((value) => {
    console.log(value)//"我是setTimeout的第三个参数,将作为setTimeout的第一个参数的参数传递进去"
})


function sum(x, y) {
    console.log(x+y) //4
}
setTimeout(sum, 1000, 1, 3);

2.setTimeout(function, 0) 发生了什么
解释setTimeout(function, 0) 这个常用的“奇技淫巧”很简单,就是为了将function里的任务异步执行,0不代表立即执行,而是将任务推到消息队列的最后,再由主线程的事件循环去调用它执行。HTML5 中规定setTimeout 的最小时间不是0ms,而是4ms。事实上,setTimeout有一个最小执行时间,当指定的时间小于该时间时,浏览器会用最小允许的时间作为setTimeout的时间间隔,也就是说即使我们把setTimeout的毫秒数设置为0,被调用的程序也没有马上启动。这个最小的时间间隔是多少呢?这和浏览器及操作系统有关。

1.HTML5标准规定 
setTimeout的最短时间间隔是4毫秒;
setInterval的最短间隔时间是10毫秒,也就是说,小于10毫秒的时间间隔会被调整到10毫秒
书和MDC

2.在John Resig的新书《Javascript忍者的秘密》一书中提到
Browsers all have a 10ms minimum delay on OSX and a(approximately)
15ms delay on Windows. 在苹果机上的最小时间间隔是10毫秒,
在Windows系统上的最小时间间隔大约是15毫秒。
MDC中关于setTimeout的介绍中也提到,Firefox中定义的最小时间间隔(DOM_MIN_TIMEOUT_VALUE)是10毫秒,HTML5定义的最小时间间隔是4毫秒。

3.大多数电脑显示器的刷新频率是60HZ,大概相当于每秒钟重绘60次。因此,最平滑的动画效的最佳循环间隔是1000ms/60,约等于16.6ms。
为了节电,对于那些不处于当前窗口的页面,浏览器会将时间间隔扩大到1000毫秒。
另外,如果笔记本电脑处于电池供电状态,Chrome和IE9以上的版本,会将时间间隔切换到系统定时器,大约是16.6毫秒。

目前,经在firefox和chrome里的测试,发现firefox识别的最小时间间隔是0,chrome识别的最小时间间隔是1,看一下demo:

setTimeout(function() {
    console.log(2)
}, 2)
setTimeout(function() {
    console.log(1)
}, 1)
setTimeout(function() {
    console.log(0)
}, 0)

chrome:

firefox:

看下面的事例。

二.script脚本引用

1.标记格式,不要采取省略形式。

2.在引用多个外部js文件时,省略了将影响到该行下一行的脚本文件,即下一行脚本代码不能被引用。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94703.html

相关文章

  • 你需要知道面试中10个JavaScript概念

    摘要:自我学习目前有成千上万的年轻人在学习和开发,希望获得一份工作。知道的绑定规则。知道和原型属性是什么以及它们的作用。高阶函数了解函数是中的一级对象,这意味着什么知道从另一个函数返回函数是完全合法的。了解闭包和高阶函数允许我们使用的情况。 翻译原文出处:10 JavaScript concepts you need to know for interviews 之前不是闹得沸沸扬扬的大漠穷...

    YacaToy 评论0 收藏0
  • 一名靠谱JavaScript程序员应备素质

    摘要:当我尝试为招一个程序员时,我发现这项任务相当艰巨。我承诺给其中一位侯选人一辆凯迪拉克,但最终没有打动他。你会得到一辆年的凯迪拉克作为签约的报酬。大神是一名还不存在的产品的前端工程师。 周五,2010年8月13号, 作者:anutron 编者注: 这篇文章写于2010年作者工作在Cloudera期间,当时node.js还没有流行,很多人还瞧不上javascript这门简陋的脚本,文章提...

    pf_miles 评论0 收藏0
  • 2017年 最好javascript 书籍

    摘要:请记住,这些书中的一些可能不是最新的,但概念和基础仍应适用。是最好的老师之一。的秘密由部分组成。在你完成这些书后,查看书籍和最好的本土书籍。 我看过三本,第1本,第二本,第四本。第一本买的的实体书,其他两本看的是电子书。第一本是大名鼎鼎老道写的,书很薄,但是非常经典。javascirpt忍者秘籍是jquery的作者写的,也是非常经典。you dont kown js系列也是非常好。看了...

    mingzhong 评论0 收藏0
  • 关于JavaScript对象,你所知道事(一)- 先谈对象

    摘要:对象与属性让我们保持耐心,再梳理一下对象与属性的关系对象是属性的集合,当对象的属性是函数时,我们将其称之为方法。 这篇博文的主要目的是为了填坑,很久之前我发表了一篇名为关于JavaScript对象中的一切(一) — 对象属性的文章,想要谈一谈JavaScript对象,可那时只是贴了一张关于这个主题的思维导图,今天我会针对这一主题进行展开,将JavaScript对象一些平常不太常用的知识...

    mykurisu 评论0 收藏0
  • 精读《你知道javascript(中卷)》

    摘要:强制类型转换本章介绍了的数据类型之间的转换即强制类型转换包括显式和隐式。强制类型转换常常为人诟病但实际上很多时候它们是非常有用的。隐式强制类型转换则没有那么明显是其他操作的副作用。在处理强制类型转换的时候要十分小心尤其是隐式强制类型转换。 前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaSc...

    李世赞 评论0 收藏0

发表评论

0条评论

Jaden

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<