一, 函数去抖
debounce 时间间隔 t 内若再次触发事件, 则重新计时, 直到停止时间大于或等于 t 才执行函数
二, jQuery 零碎知识
1, 把 jQuery 对象转化为 js 对象(1)$div[0];(2)$div.get(0);
2, 任然获取 jQuery 对象(1)$div.eq(0);
3, 把 js 对象转化为 jQuery 对象 $(div)
4, 用 $().each(function(){})遍历 DOM 对象;
5, 用 $.each(data,function(){})遍历数组.
6,find()沿着 DOM 树向下遍历所有层级
7,children()沿着 DOM 树向下遍历单一层级.
8, 对于 html 元素本身就带有的固有属性, 在处理时, 使用 prop 方法.
9, 对于 HTML 元素我们自己自定义的 DOM 属性, 在处理时, 使用 attr 方法
10, 具有 true 和 false 两个属性的属性, 如 checked, selected 或者 disabled 使用 prop()
三, new Date()的运行结果(????)
(1)在服务器端, 参数和返回值均是格林尼治时间, 比如 nodejs 下
(2)在客户端, 参数和返回值均是本地时间, 比如 html 下
四, 继承的几种方式
(1)构造函数继承:
在子类构造函数内部, 把父类构造函数的 this 换成子类的 this, 并且给子类实例增加属性.
(2)原型链继承:
将父类的实例赋给子类的原型, 并且给子类的原型增加属性.
(3)实例继承:
在子类构造函数内部, new 父类的实例并用变量接收, 并给该变量增加属性, 再返回该变量.
(4)拷贝继承:
在子类构造函数内部, new 父类的实例并遍历该实例的属性, 复制到子类的原型上, 再给该子类的原型增加属性.
(5)组合继承:
构造函数继承 + 原型链继承
(6)寄生组合继承:
构造函数继承 + 原型链继承(原型链所在的新构造函数为空).
四, Promise 的执行流程(箭头函数的 this 总是指向实例对象)
(1)定义一个函数, 在这个函数里, 首先给 Promise 类传进一个函数参数用来定义个性化的逻辑, 这个函数参数传入两个函数参数作为成功的回调和失败的回调.
(2)定义的那个函数执行时, 首先 new 出 Promise 类的实例, 即 Promise 类里的代码执行. 执行到 Promise 类的参数函数时遇上异步, 于是用 then 为 Promise 类注册成功和失败的回调, 然后继续执行异步, 调用成功或失败的回调.
五, ejs 模板中的四种表达式输出形式
在 ejs 模板中, 通常会用下面四种方式在 HTML 中输出服务端的变量或表达式的值:
直接在 <%%> 中写表达式或变量. 这种情况通常只是用来进行表达式计算或给变量赋值, 不会有任何输出, 被称作无缓冲的代码.<% code %>
在 <%%> 中通过 = 号输出变量或表达式的值. 默认输出到页面中的内容会进行 HTML 转义.<%= code %>
在 <%%> 中通过 - 号输出变量或表达式的值. 内容不经任何转义直接输出到页面上.<%- code %>
在结束标记 %>之前添加 - 号, 这样输出的内容会自动带有 HTML 标记的缩进. 如:<% code -%> 或 <% -%> 或 <%= code -%> 或 <%- code -%>
来源: http://www.qdfuns.com/article/40901/2093d4c7d41333758381d82811361ea0.html