JavaScript

开发工具心得:如何 10 倍提高你的 Webpack 构建效率

0. 前言图1:ES6 + Webpack + React + Babelwebpack 是个好东西,和 NPM 搭配起来使用管理模块实在非常方便。而 Babel 更是神一般的存在,让我们在这个浏览器尚未全面普及 ES6 语法的时代可以先一步体验到新的语法带来的便利和效率上的提升。在 React 项目架构中这两个东西基本成为了标配,但 commonjs 的模块必须在使用前

ES6的Iterator对象详解

Iterator实现原理创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。不断调用指针对象的next方法,直到它指向数据结构的结束位置。每一次调用next方法,都会返回数据结构的当前成员的信息。具体

也谈 webpack 及其开发模式

从模块化谈起近年来,js开发涌现出了诸多模块化解决方案,例如以在浏览器环境之外(服务端)构建 JavaScript 生态系统为目标而产生的CommonJS规范,从CommonJS社区中独立出来的AMD规范(异步模块定义),还有国人制定的CMD规范等。随着遵循AMD规范的RequireJS的流行,AMD规范在前端界已被广泛认同。后来,随着npm社区的逐渐壮大,CommonJS

【译】JavaScript 中的命名空间

原文链接: Namespacing in JavaScript译文原链: 【译】JavaScript 中的命名空间全局变量应该由有系统范围相关性的对象们保留,并且它们的命名应该避免含糊并尽量减少命名冲突的风险。在实践中,这意味着你应该避免创建全局对象,除非它们是绝对必须的。不过,恩,这些你早都知道了……所以你对此是怎么做的?传统方法告诉我们,最好的消除全局策略是创建少数作为

jQuer的read函数源码解读

如果你对$(document).ready()的理解也仅限于在DOM Tree绘制完毕后触发,那么,你也应该好好研究下ready的工作原理,因为,TST的面试官问过我这个问题。。。一、关于jQueryjQuery是一个伟大的脚本库,由John Resig在 2006年1月的BarCamp NYC上释出第一个版本。你可以在 http://jquery.com/ 下载到最新版本

JavaScript 类数组对象

定义JavaScript 类数组对象的定义:可以通过索引访问元素,并且拥有 length 属性;没有数组的其他方法,例如 push , forEach , indexOf 等。举例说明var foo = { 0: 'Java', 1: 'Python', 2: 'Scala', length: 3}转换如果类数组对象需要转化为数组,可以用 Array

你可能不知道的 NaN 以及 underscore 1.8.3 _.isNaN 的一个 BUG

这篇文章并不在我的 underscore 源码解读计划中,直到 @pod4g 同学回复了我的 issue(详见 https://github.com/hanzichi/underscore-analysis/issues/2)。其实之前也有同学提出 isNaN 有 native 的 function,正好借此文辨析下几个常见的概念、方法,她们是 NaN,Number.NaN

webpack配合vue.js实现完整的单页面demo

本篇文章主要是我在开发前研究了webpack+vue.js的单页面应用,因为需要用到node的npm,所以确保安装了node,建议官网安装最新的稳定版本。并且在项目中需要加载一些npm包,由于npm的服务器在国外,可能我们下载的过程会比较慢,所以建议用阿里的镜像cnpm安装,10分钟实时更新一次npm的镜像。具体的下载配置参考阿里的cnpm官网。本文章只是和大家探讨怎么利用

Fullscreen API 全屏显示网页

第一次看到应用 Fullscreen API 全屏显示网页,是 FaceBook 中的照片放大。作为一个比较新的 API,目前只有 Safari、Chrome 和 FireFox 三种浏览器支持该特性。因为尚未发布正式版的标准,所以必须使用浏览器特定的方法,也就是应用添加前缀(webit/moz)的方法。这个 API 不仅能够使整个页面全屏显示,也可以使页面中的某个元素全屏

关于for循环中利用索引执行函数的问题(闭包)

今天在前端技术群中看到有位初学朋友问了个问题,我贴一下代码:js:var pList = document.getElementsByTagName("p");for(var i=0;i 1 2 3 4 5他的想法是点击每一个P标签的时候获取到点击的p标签的html,代码看着没什么问题,可实际报错了~这个问题估计大部分人一开始都遇到过,为什么这