有时我们并不想立即执行一个函数,而是等待特定一段时间之后再执行,这种做法也叫“计划调用”。
目前有两种方式可以实现:
- setTimeout 将函数的执行推迟到一段时间之后再执行。
- setInterval 让函数间隔一定时间周期性执行。
这两个方法并不存在于 JavaScript 的规范中。但是大多数运行环境都有内置的调度器,而且也提供了这两个方法的实现。目前来讲,所有浏览器,包括 Node.js 都支持这两个方法。
发表于: 2019-10-01 21:19:40
1 715
今天完成的事情:对任务2有一定的梳理;学习了运算符
明天要完成的事情:继续任务2和运算符还有es6的学习
难题:任务2里的配置界面到底是哪个啊?只有一个设置界面大呢不是玩家配比啊
收获:
有时我们并不想立即执行一个函数,而是等待特定一段时间之后再执行,这种做法也叫“计划调用”。
目前有两种方式可以实现:
这两个方法并不存在于 JavaScript 的规范中。但是大多数运行环境都有内置的调度器,而且也提供了这两个方法的实现。目前来讲,所有浏览器,包括 Node.js 都支持这两个方法。
计时器
对于setInterval得使用,个人建议是能不用尽量不用。涉及到必须要的定时器,前文已经叙述可以使用两个setTimeout嵌套组合来实现,并且还能规避掉一些问题得发生。涉及到要用它来制作动画( jQuery就使用setInterval来写动画,也是导致其慢原因之一),更建议使用requestAnimationFrame(RAF),或者直接采用CSS来写(如果可以的话)。
requestAnimationFrame 比起 setTimeout、setInterval 的优势主要有两点:
另外:
js语言在if块,for语句等这些块中定义的变量,可以在它的父级作用域中访问,及js语言是没有块级作用域的。
可以用let来声明以创造局部作用域;
变量对象和活动对象有什么区别,就又可以自如的应答了,他们其实都是同一个对象,只是处于执行上下文的不同生命周期。
当执行流进入一个函数时,即该函数正在执行,函数的执行环境就会被推入一个环境栈中,所有处在执行流的执行环境将有次序地保存在环境栈中,在函数执行之后,栈将其执行环境弹出,把控制权交给原来的执行环境。所以在程序执行中,环境栈是不断变化的,伴随着执行环境的出入
作用域链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问(包括外部数据)
标识符解析是沿着作用域链一级一级地搜索标识符的过程,搜索始终从作用域链的前端开始,然后逐级地向后回溯,直到找到标识符为止。
这些东西都是一些理解性的东西;我现在卡在这里读了也没什么用用不到过两天就忘了
难搞
到是把网道里的一些东西看了一遍;关于函数的一些基础的需要记忆的反复看
还有任务2:
感觉写的不是很对
一直卡在这里不知道咋形容;
评论