Promise

什么是 Promise?

Promise 是 JS 异步编程中的重要概念,异步抽象处理对象,是目前比较流行 Javascript 异步编程解决方案之一

有用过 promise 吗?请写出下列代码的执行结果,并写出你的理解思路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
setTimeout(() => {
console.log(1);
}, 0);

new Promise((resolve) => {
console.log(2);
for (var i = 1; i < 200; i++) {
i = 198 && resolve();
}
console.log(3);
}).then(() => {
console.log(4);
});
console.log(5);
// 结果:2、3、5、4、1;

阅读全文

秒懂this

项目开发中经常会遇到 this 指向的问题,可能会纠结很久,今天将 this 做个汇总,以便在日后的开发中少走弯路,而且在面试中也可能会被问及。

注意:本文讲述只针对浏览器环境。

一:全局执行

1
2
console.log(this);
//window

可以看出在全局作用域中 this 指向当前的全局对象 Window。

二:函数中执行

1.非严格模式中

1
2
3
4
5
function func() {
console.log(this);
}
func();
// Window

阅读全文

jquery-table2excel插件

前些天接触到一个需求,项目的后台需要将 HTML 表格内容导出到 Excel 中,心里第一念头是后台提供接口前台去调用就好。谁想项目经理要前台自行做处理。于是上网百度了些插件,感觉不怎么样。问了同事给推荐了几款。其中一款感觉不错。在这分享一下!

插件介绍
jquery-table2excel 是一款可以将 HTML 表格的内容导出到微软 Excel 电子表格中的 jQuery 插件。该插件可以根据你的需要导出表格中的内容,不需要的行可以不导出。它文件体积小,使用非常方便。

阅读全文

Hexo音乐播放器

Hexo 音乐播放完美支持 https 和多平台

现在使用 https 的网站越来越多,像百度、淘宝等等都是如此
另外使用 github 搭建 hexo 的同学们,现在 gh-pages 已经强制要求全站 https 啦
这种网站格式一般为”https://xxx.github.io"
然后…发现网易云音乐已经不能正常使用了
由于网易云目前并不支持 https,所以我们只能通过插件来实现音乐播放
这里需要使用到 Aplayer

阅读全文

IE8问题

ie8 下遍历字符串出现的 bug

阅读全文

toFixed方法详解

最近做的项目涉及到金额的计算,有一种方式就是进行四舍五入的规则进行小数点后面的尾数处理,以前一直以为 toFixed 方法就是四舍五入的,直到测试测出金额计算的 bug 我才如梦初醒,才深究了下 toFixed 这个方法。
toFixed 方法在 IE10 及以上里面是正常的四舍五入,但是别的浏览器里面就不一样了,它不是正常的四舍五入,比如:

1
2
3
4
var a = 1.335;
console.log(a.toFixed(2));
// IE 1.34
//chorme 1.33

阅读全文

阻止浏览器记住密码功能干扰表单填充

我知道有 4 种方法,具体可以详细的去试试看:

阅读全文

IE6浏览器常见的bug,缺陷的解决办法

IE6不支持min-height,解决办法使用css hack:

1
2
3
4
5
.target {
min-height: 100px;
height: auto !important;
height: 100px; // IE6下内容高度超过会自动扩展高度
}

ol内li的序号全为1,不递增。解决方法:为li设置样式display: list-item;

阅读全文