Life is short.
筛选分类:技术 - javascript

Reference meterials.

今天在 Vue 中尝试绑定 Lodash 防抖动函数 (debounce), 在传入闭包函数的时候遇到了一点问题, 其实是对箭头函数和引用传递的机制理解不够.

Vue 拷贝特定内容到剪切板有一个专门的库 vue-clipboard, 但是不太好用, 而且很简单的功能引入一个库代价太大, 可以自己用几句代码简单实现下.

JavaScript 属于描述型脚本语言, 在运行时由浏览器进行动态解析和执行, 在此过程中有一些特殊的行为模式, 合格的 JavaScript 程序员应该对此有清楚的了解.1704

JavaScript 中, 某些事件, 如 'input', 'resize', 'scroll', 可以在很短时间内频繁触发, 如果把逻辑函数直接绑定到这些事件上, 会严重影响运行性能, 甚至造成更大的麻烦, 比如把 ajax 请求直接绑定到 'input' 事件上, 将在用户输入时产生频率很高的 ajax 请求, 给服务器造成不必要的响应压力.

当函数返回时, 调用者能够拿到预期结果, 则称该函数是同步 (synchronous) 的, 反之称该函数是异步 (asynchronous) 的. 就是说, 在主线程内完成的任务是同步的, 主线程外产生额外线程的任务是异步的.

因为.data()不会设置data-*的属性值. 尽管.data()获取的数据初始化自data-*属性, 但在添加和修改的过程中不会改变元素的data-*属性. 正确的做法是使用.attr()方法.

JavaScript 中双感叹号运算符的作用与 PHP 中boolval()函数作用类似, 如以下语句等价:

let a = !!test;
let b = test != null ? true : false;

node.js 安装, 升级与版本管理, nvm 和 n 模块

Gulp 的入门教程满大街都是, 但是我不介意自己写一个.

Gulp 默认将各项任务同步执行, 即通过多项任务同时进行, 使所有任务完成的时间总体降低. 这会带来一个问题, 因为某些任务需要在另外一些任务完成后才能执行, 我们把这样的关系称作依赖. 在 gulp 中声明依赖的方法非常简单, 参考这个链接.

很多情况下需要向表单输入事件添加绑定, 监听的事件主要是 "input" 和 "change" 两个. 此二者在功能和行为上存在诸多不同.

作者: Nicholas C. Zakas

我相当乐意花一整天的时间通过编程把一个任务实现自动化, 除非这个任务手动只需要 10 秒钟就能完成.

Douglas Adams, Last Chance to See

作者: Nicholas C. Zakas

数据是不应当影响指令的正常运行的. 精心设计的应用应当将关键数据从主要的源码中抽敦聘来, 这样我们修改源码时才能更加放心.

作者: Nicholas C. Zakas

编程实践是另外一类编程规范. 代码风格规范只关心代码的呈现, 而编程实践则关心编码的结果. 可以将编程实践看作是 "秘方" 一一它们指引开发者以某种方式编写代码, 这样做的结果是书籍的. 如果你使用过一些设计模式比如 MVC 中的观察者模式, 那么你已经对编程实践很熟悉了. 设计模式是编程实践的组成部分, 专用于解决和软件组织相关的特定问题.