Javascript

分类下相关文章

requerejs, webpack, browserify 的对比

JS 的依赖管理工具真是层出不穷,最近用 React 又发现了两个新工具 Browserify, Webpack。 测试一下其中的异同。 简单的应用场景 现在通过简单的应用场景来看一下,这三个依赖管理工具的异同。 示例来自于 RequireJS 的官网教程 project-directory/ |_ project.html |_ scripts/ |_ main.js |_ helper/ |_util.js 使用 RequireJS 进行管理 代码结构如下 project-directory/ |_ project.html |_ scripts/ |_ m ...

阅读全文...

RequireJS 的语法糖 Simplified CommonJS Wrapping

介绍语法糖之前,先看一段恶心的代码 define([ "require", "jquery", "blade/object", "blade/fn", "rdapi", "oauth", "blade/jig", "blade/url", "dispatch", "accounts", "storage", "services&qu ...

阅读全文...

requirejs

RequireJS 为何会请求 name.html.js 而不是 name.html 文件 代码中写的是 var cardTemplate = require('card.html'); 而在请求时,实际请求的是 card.html.js 文件, 格式如 define(function(require) { return '<div>...html...</div>'; }); Google 得知,在使用不同域名时会导致该问题,即当前页 html 是在 a.com 上,而引用的 html 使用了 CDN, 例如 b.com。 即,同源策略 Under the ...

阅读全文...

React render - 费解的 Uncaught Error

非常简单的一段测试代码,但是一直报错 Uncaught Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings. HTML 代码 <head> <meta charset="utf-8"> <title>Index Page</title> <script src="react-0.12.2 ...

阅读全文...

jQuery

What is the difference between jQuery's space and > selectors? > 是所有的直系子女中符合条件的 空格是所有后辈中符合条件的 所以,从逻辑严谨的角度看,能用 > 的时候,尽量用 > 参考: http://stackoverflow.com/questions/1218068/what-is-the-difference-between-jquerys-space-and-selectors text() 与 val() 的区别 val() 是获取 input 的 value 值 text() 则是 ...

阅读全文...

Document Object Model (DOM)

在使用 React 的时候,越发觉得自己 javascript 的基础不牢。 例如,脱离了 jQuery 就不知道怎么操作 DOM node 了。 那就使用 jQuery 不就得了?写一个独立的 React 小组件,然后还要加载依赖 jQuery 是非常恶心的事情, 所以必须修炼使用原生 js 的内功。 树形结构 document.documentElement 是整棵树的根, 即 html node。 document.body 对应 body node. nodeType 每个 DOM node 都有一个 nodeType 属性 document.ELEMENT_NODE 1 doc ...

阅读全文...

scrollTop 的浏览器兼容问题

今天 React QQ 群 (191059493) 里一位大神发现我写的处女 React 组件在 Firefox 下没有效果。 var scrollTop = document.getElementsByTagName("body")[0].scrollTop; scrollTop 即页面元素与当前窗口可见区域的顶端的距离。 通过打印日志调试,发现 scrollTop 的值在 Firefox 下始终为 0,而在 Chrome 和 Safari 下正常。 修正为 var scrollTop = document.documentElement.scrollTop || do ...

阅读全文...

Eloquent Javascript

The art of programming is the skill of controlling complexity. 在线阅读地址 Eloquent JavaScript 已更新至第二版 降低使用复杂度 var total = 0, count = 1; while (count <= 10) { total += count; count += 1; } print(total); 如果通过自定义的 sum, range 组成,那么复杂度将大大降低。 print(sum(range(1, 10))); 大家更喜欢 Python 而不是 Javascr ...

阅读全文...

使用 javascript 对 URI 进行转义

escape, encodeURI, encodeURIComponent 的区别 escape 已经废弃使用。 encodeURI 是对整个 URL 进行转义。 encodeURIComponent 是对作为参数值的字符串进行转义。 encodeURI 不对以下字符进行转义 ":", "/", ";", "?". 需要使用 encodeURIComponent 对这些字符进行转义. > var s = "http://sunzhongwei.com/nice wiki"; > e ...

阅读全文...

使用 gulp 检测 javascript 语法

昨天在给域名注册服务的前端增加小功能, 代码提交之后, 用 fiddler 在测试环境下测试了一下,发现居然有 js 语法错误,多加了一个右括号。 然后灰溜溜的修复之后又提交了一次。问题很小,但是今天早上突然想起,觉得非常不应该。 语法错误浪费的调试时间,即使只有5秒都非常不值得 平时自己写 Python,Golang 都在 VIM 上配置了自动语法检测插件,但是 Javascript 一直忽略了,现在正式写前端,马虎不得 鉴于之前一直没有配置好 Javascript 的 VIM 检测插件,我决定使用 Gulp 来做这件事, 同时带来的好处是,Gulp 可以同时对项目代码目录下的所有 js ...

阅读全文...

全局对象守护神 - JS 的匿名自调用函数

我们经常会看到类似的代码 <script type="text/javascript"> (function() { var a = 1; console.log(a); })(); </script> 实际上这就是匿名自调用函数。 Self-invocation (also known as auto-invocation) is when a function executes immediately upon it’s definition. 使用自调用函数的主要目的是创建一个新的作用域,以防止引入新的全局变量,或者污染现有的全局 ...

阅读全文...

javascript 代码风格

"For the past 33 years, I have looked in the mirror every morning and asked myself: 'If today were the last day of my life, would I want to do what I am about to do today?' And whenever the answer has been 'No' for too many days in a row, I know I need to change something." - Steve Jobs ...

阅读全文...

javascript

console.log("Hello world!"); 定义一个类 格式类似于定义一个函数: var Person = function() { // property this.name = "Zhongwei"; this.age = 28; // method this.start_running = function() { alert("running..."); } } 使用 var zhongwei = new Person(); consol ...

阅读全文...