ES6 尾调用和尾递归

什么是尾调用?尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x); }上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。以下三种情况,都不属于尾调用。// 情况一 function f(x){ let y = g(x); return y; } /

- 阅读全文 -

getElementById和querySelector方法的区别

js原生的DOM选择符,getElementById()、getElementsByTagName()、querySelector()、querySelectorAll()。说不定一不小心就发现彩蛋了。那么我们来说说上面那几个方法。"querySelector 属于 W3C 中的 Selectors API 规范 。而 getElementsBy 系列则属于 W3C 的 DOM 规范"------

- 阅读全文 -

页面可见性判断:document.hidden与visibilitychange事件

 我们需要在特定的时候判断页面的显示状态,例如:当视频加载到可播放状态时,根据用户是否停留在当前页面来决定是否开始自动播放。页面的展示的状态的判断就需要用到html5新增的一个api:document.hidden。  document.hidden属性:bool型,表示页面是否处于隐藏状态。页面隐藏包括页面在后台标签页或者浏览器最小化。  visibilitychange事件:当文档的可见性改变

- 阅读全文 -

JavaScript执行机制

大纲  1. 场景分析  2. 执行机制相关知识点  3. 以实例来说明JavaScript的执行机制  4. 相关概念1. 场景分析/* 以下这段代码的执行结果是什么? 如果依照:js是按照语句出现的顺序执行这个理念, 那么代码执行的结果应该是: //"定时器开始啦" //"马上执行for循环啦"

- 阅读全文 -