2014-04-21 W.Y.
我们今天要讨论的主题是,大型 JavaScript 应用中一些有效的设计模式。本文基于我最近发布在 LondonJS 上同名演讲,灵感则来自于 Nicholas Zakas 之前的研究成果。 我是谁以及我为什么要撰写这个主题? 我目前是 AOL 的一名 JavaScript 和 UI 开发人员,负责规划和编写下一代面向用户的应用的前端架构。这些应用不仅复杂,而且需要一种可扩展和高复用的架构,我的职责之一就是确保这类应用中的设计模式尽可能是可持续的。 尽管在这个领域有许多比我知识渊博的专家,我也认为自己是设计模式的狂热者。先前,我基于 Creative Commons 许可写了 《Essential JavaScript Des 继续阅读 »
2015-07-09 浩阳
做了一张思维导图。总结这几个月对 JavaScript 的学习吧,也是一个复习。也是我目前的技能树。 继续阅读 »
2015-07-31 jude
阅读前,希望你了解javascript的原型链 P.js 项目地址 基础用法: var Animal = P(function(animal){ animal.init = function(name){ this.name = name; }; animal.move = function(meters){ console.log(this.name + " moved " + meters + " m."); } }); 继续阅读 »
2016-11-22 浩阳
content {:toc} 本文将介绍如何使用 JavaScript 创建文件,并自动/手动将文件下载。这在导出原始数据时会比较方便。 先上代码 js /** * 创建并下载文件 * @param {String} fileName 文件名 * @param {String} content 文件内容 */ function createAndDownloadFile(fileName, content) { var aTag = document.createElement('a'); var blob = new Blob([content]); aTag.download = fil 继续阅读 »
2015-06-10 W.Y.
参考原文:7 Essential JavaScript Functions 以下是意译。 早期,由于浏览器厂商对 JavaScript 实现不同,我们通常需要一些简单的函数来实现某些边缘特性,甚至某些基本特性,比如 addEventListener 和 attachEvent。现在,虽然时代进步了,但仍有一些函数需要开发者掌握,以便于性能优化和快速开发。 more 去抖 Debounce 去抖(debounce)函数可以提高某些事件绑定的性能,如果你没有为 scroll、resize 和 key* 事件使用去抖函数,你的代码很可能是性能低下的,下面是一个 debounce 函数的实现: ```javascript // 返回 继续阅读 »
2014-01-23 W.Y.
delete 操作符用于删除对象的属性。 似乎很多同学(包括我)对 delete 操作符都是似是而非,为什么有的属性可以被删除,有的却不能被删除?为什么能够删除对象的属性却不能删除变量或函数?在 eval 和 严格模式下,delete 操作符又有哪些特性?等等。。 本文将从基本概念到 ECMPScript 内部原理来学习 delete 操作符。 语法 表达式 javascript delete object.property // 点操作符方式,常用方式 delete object['property'] // 字符串属性名方式 参数 object - 对象名称,或者返回一个对象的表达式 property - 继续阅读 »
2015-05-20 浩阳
JavaScript 作用域和作用域链学习笔记。 继续阅读 »
2016-10-13 曹强
原题来自: javascript-puzzlers 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44... 当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了.... 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ["1", "2", "3"].map(parseInt) 知识点: Array/map Number/parseInt Global_Objects/parseInt JavaScript parseInt 首先, map接受两个参数, 一个回调函数 callback, 一个回调函数的this值 其中回调函数接受三个参数 currentV 继续阅读 »
2016-10-13 曹强
承接上篇 44个 Javascript 变态题解析 (上) 第23题 [1 < 2 < 3, 3 < 2 < 1] 这个题也还可以. 这个题会让人误以为是 2 > 1 && 2 < 3 其实不是的. 这个题等价于 1 < 2 => true; true < 3 => 1 < 3 => true; 3 < 2 => false; false < 1 => 0 < 1 => true; 答案是 [true, true] 第24题 // the most classic wtf 2 == [[[2]]] 这个题我是猜的. 我猜的 true, 至于为什么..... both objects get converte 继续阅读 »
2016-08-01 曹强
语法 区分大小写、变量弱类型、行尾分号可有可无、注释为双斜线、括号表明代码块 变量 变量用var声明,变量的命名规则:第一个字符必须是字母、下划线或美元符号;余下的字符可以是下划线、美元符号或任何字母或数字字符。 变量命名规范: Camel标记法:首字母小写,接下来的单词都以大写字母开头。例如:var **m**y**T**est**V**alue=0,**m**y**S**econd**T**est**V**alue="hi"; Pascal标记法:首字母大写,接下来的单词都以大写字母开头。例如:var **M**y**T**est**V**alue=0,**M**y**S**econd**T**est**V**alu 继续阅读 »