当前目录: JavaScript笔记
async/await

2017年2月8日  JavaScript笔记,前端资源   

es7语法,主要作用让异步操作更简单,在Generator函数基础上优化得来   Generator 函数 var gen = function* () { var f1 = yield readFile('/etc/fstab'); var f2 = yield readFile('/etc/shells'); };   调用: gen().next() gen().next() gen().next() ...     async函数 var asyncReadFile = async function (){ var f1 = await readFile('/etc/fstab'); var f2 = await readFile('/etc/shells'); };   调用: asyncReadFile()   async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已。 调用的方法也明显不同,Generator需要使用next()来一个个调用,而async跟普通函数调用一样 http://es6.ruanyifeng.com/?search=await&x=5...

setTimeout 秘密

2017年1月18日  JavaScript笔记,前端资源   

描述:计时器setTimeout是我们经常会用到的,它用于在指定的毫秒数后调用函数或计算表达式。 语法:setTimeout(code, millisec, args) 注意:如果code为字符串,相当于执行eval()方法来执行code。 当然,这一篇文章并不仅仅告诉你怎么用setTimeout,而且理解其是如何执行的。   1、setTimeout原理 var start = new Date(); var end = 0; setTimeout(function() { console.log(new Date() - start); }, 500); while (new Date() - start <= 1000) {} 在上面的代码中,定义了一个setTimeout定时器,延时时间是500毫秒。 你是不是觉得打印结果是: 500 可事实却是出乎你的意料,打印结果是这样的(也许你打印出来会不一样,但肯定会大于1000毫秒): 这是为毛呢? 究其原因,这是因为 JavaScript是单...

es6中的yield*用法

2016年12月27日  JavaScript笔记,前端资源   

let generator = function* () { //这里的*不加就会报错,这种声明方法就是generator函数 yield 1; yield* [2,3,4]; //加* 遍历所有元素,不加* 直接遍历整体 yield 5; }; var iterator = generator(); //generator返回的是Iterator对象,所以调用时候要使用next() console.log( iterator.next() )// { value: 1, done: false } console.log( iterator.next() ) // { value: 2, done: false } console.log( iterator.next() )// { value: 3, done: false } console.log( iterator.next() )// { value: 4, done: false } console.log( iterator.next() )// { value: 5, done: false } console.log( iterator.next() )// { value: undefined, done: true } 主要的作用就是遍历比较复杂的数据...

js箭头函数=>,解决this指向问题

2016年12月26日  JavaScript笔记,前端资源   

在js看到=>,如果没接触过Php或者类似的语言,估计会懵逼。 这个是es6的语法特性,主要是明确了this指向问题。直接来一个例子方便理解: $('#bt1').click(function () { console.log($(this)); //这里的this,是#bt1本身,这个我们不难理解 });   $('#bt1').click(function () { setTimeout(function () { console.log($(this)); //这里的this,指向的是window。不是我们预期想要的结果 },100) });   重点来了 $('#bt1').click(function () { setTimeout(()=>{ console.log($(this)) //这里的this,又重新指向了#bt1本身 },100) }); 除了用箭头函数的方法还有两个方法可以实现 $('#bt1').click(function () { setTimeout(function () { console.log($(this)); }.bin...

js判断昨天、今天、明天

2016年11月6日  JavaScript笔记,前端资源   

js如何判断昨天、今天、明天 function GetDateStr(AddDayCount) { var dd = new Date(); dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期 var y = dd.getFullYear(); var m = dd.getMonth()+1;//获取当前月份的日期 var d = dd.getDate(); return y+"-"+m+"-"+d; } // document.write("前天:"+GetDateStr(-2)); // document.write("<br />昨天:"+GetDateStr(-1)); // document.write("<br />今天:"+GetDateStr(0)); // document.write("<br />明天:"+GetDateStr(1)); // document.write("<br />后天:"+GetDateStr(2)); // document.write("<br />大后天:"+GetDateStr(3));