标签:bst 影响 语法糖 语法 func param nan let rip
window.onload DOMContentLoaded
Date赋值
清除浮动
Genertor 迭代器
基本语法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| { let tell = function*() { yield "a"; yield "b"; return "c"; };
let k = tell(); console.log(k.next()); console.log(k.next()); console.log(k.next());
}
|
优雅实现Iterator
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| { let obj = {}; obj[Symbol.iterator] = function*() { yield 1; yield 2; yield 3; };
for (let value of obj) { console.log(value); } }
|
实现状态机
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| { let state = function*() { while (1) { yield "A"; yield "B"; yield "C"; } }; let status = state(); console.log(status.next()); console.log(status.next()); console.log(status.next()); console.log(status.next()); console.log(status.next()); console.log(status.next()); console.log(status.next()); }
|
语法糖 async await
1 2 3 4 5 6 7 8 9
| { let state = async function() { while (1) { await "1"; await "2"; } }; }
|
### 实现抽奖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| { let draw = function(count) { 大专栏 一日 2018-1-29="comment">//具体的抽奖逻辑 console.log(`剩余${count}`); }; let residue = function*(count) { while (count > 0) { count--; yield draw(count); } };
let star = residue(5);
console.log(star.next()); console.log(star.next()); console.log(star.next()); console.log(star.next()); console.log(star.next()); console.log(star.next()); }
|
实现长轮询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| { let ajax = function*() { yield new Promise(function(resolve, reject) { setTimeout(function() { resolve({ code: 0 }); },200); }); }; let pull = function(){ let genertaor = ajax(); let step = genertaor.next(); step.value.then(function(d){ if(d.code!=0){ setTimeout(function(){ console.log('wait') pull() },1000); } else { console.log(d); } }) }
pull() }
|
EventTarget.addEventListener()
IE8以前的浏览器只支持事件冒泡,不支持事件捕获,它也不支持addEventListener
函数,不会用第三个参数来表示是冒泡还是捕获,它提供了另一个函数attachEvent
。IE9就支持addEventListener
。
addEventListener()
的第三个参数useCapture
,这个参数决定要使用的事件处理程序的调用类型,只有在特定狀況下才会对事件产生影响,通常建议用false;
如果参数是true
,事件处理程序以捕捉模式触发;从顶层的父节点开始触发事件,从外到内传播。
如果参数是false
,事件处理程序以冒泡模式触发;从最内层的节点开始触发事件,逐级冒泡直到顶层节点,从内向外传播
jquery $(document).ready()
与window.onload
的区别
Jquery中$(document).ready()
的作用类似于传统JavaScript中的window.onload
方法,不过与window.onload
方法还是有区别的。
执行时间
window.onload
必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()
是DOM结构绘制完毕后就执行,不必等到加载完毕。
编写个数不同
window.onload
不能同时编写多个,如果有多个window.onload
方法,只会执行一个
$(document).ready()
可以同时编写多个,并且都可以得到执行
简化写法
window.onload
没有简化写法
$(document).ready(function(){})
可以简写成$(function(){})
;
document.querySelector()
原生选择器
stopPropagation
阻止捕获和冒泡阶段中当前事件的进一步传播。
判断NaN
ES6
Polyfill
1 2 3
| Number.isNaN = Number.isNaN || function(value) { return typeof value === "number" && isNaN(value); }
|
ES6 Array
new Array
指定数组长度
Array.prototype.fill(value, start, end)
用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
CSS3 nth-of-type() 选择器
匹配属于父元素的特定类型的第 N 个子元素的每个元素.
n 可以是数字、关键词或公式。
nth-child()
匹配属于其父元素的第 N 个子元素,不论元素的类型。
n 可以是数字、关键词或公式。
一日 2018-1-29
标签:bst 影响 语法糖 语法 func param nan let rip
原文地址:https://www.cnblogs.com/sanxiandoupi/p/11693141.html