「 JS 」
May 01, 2018
Words count
3.7k
Reading time
3 mins.
最近把《javascript高级程序设计》看完了,发现里面有很多跨浏览器的代码,总结一下,方便记录。
var EventUtil = {
addHandler: function(element,type,handler) { //事件监听
if(element.addEventListener) {
element.addEventListener(type,handler,false);
}else if(element.attachEvent) ...
Read article
「 JS 」
April 29, 2018
Words count
9.9k
Reading time
9 mins.
首先,JavaScript是单线程的,用事件循环的机制来保证系统的正常运行。如果有同步的ajax请求或者很复杂的运算,JavaScript要等这些操作完成,才能响应其他事件,页面会进入假死状态。
然而对于日渐复杂的web应用来说,这个是致命的。这也是为什么Node.js适合高I/O操作的业务,而像PHP,直到现在,I/O操作也没有提供对应的异步版本,对于PHP来说每个请求都在php-fpm的一个新线程里,这个线程阻塞了不影响其他线程,异步也就没有那么迫切。
其次,JavaScript作为动态语言,...
Read article
「 JS 」
April 20, 2018
Words count
4.1k
Reading time
4 mins.
JSON对象的两个方法:JSON.parse() 和 JSON.stringify() 通常用做JSON对象和字符串之间的相互转换;
JSON.parse() 可以接受第二个参数,它可以在返回之前转换对象值。比如这例子中,将返回对象的属性值大写:
const user = {
name: 'John',
email: 'john@awesome.com',
plan: 'Pro'
};
const userStr = JSON....
Read article
「 JS 」
April 12, 2018
Words count
13k
Reading time
12 mins.
模块化是一个进行很久的话题,发展历程中出现过很多模式,例如AMD,CommonJS等等。
Module是ES6的一个新特性,是语言层面对模块化的支持。
与之前模块加载机制不同,Module是动态加载,导入的变量的只读引用,而不是拷贝。
// 1. export default 可以做默认导出
// a.js
export default 5; // 默认导出
// b.js
import b, {a} from './a.js'; // 默认导入,不需要加...
Read article