如何实现一个简单的Webpack打包器

2020-03-13
阅读 12 分钟
1.4k
为什么需要打包 原始的<script>标签加载JS的方式的弊端: 1.容易污染全局变量 2.模块加载的顺序需要事先定义好 3.模块之间的管理要主观了解清楚 4.模块加载过多会导致请求过多;全部打包在一起影响项目的初始化 了解完为什么需要打包之后,那我们很容易就能得出我们打包的目的:处理模块之间的依赖关系,从而更好...

Node Stream运行机制

2018-10-23
阅读 8 分钟
2.4k
你可以把流理解成一种传输的能力。通过流,可以以平缓的方式,无副作用的将数据传输到目的地。在Node中,Node Stream创建的流都是专用于String和Buffer上的,一般情况下使用Buffer。Stream表示的是一种传输能力,Buffer是传输内容的载体 (可以这样理解,Stream:外卖小哥哥, Buffer:你的外卖)。创建流的时候将ObjectMo...

JavaScript数组使用方法总结

2018-05-12
阅读 5 分钟
1.3k
作为最常用的类型,JavaScript中的数组还是和其他语言中有很大的区别的。主要体现在两点: 数组中的每一项都可以保存任何类型的数据 数组的大小可以动态调整 首先来介绍创建数组的两种方法 1.第一种方式 {代码...} 可以看到这种方式建立数组,arr1是一个空数组,arr2是一个长度为3的数组,arr3是一个包含‘jerry’一个元素...

ES6类以及继承的实现原理

2018-05-09
阅读 6 分钟
10k
通过ES6创建的类,是不允许你直接调用的。在ES5中,构造函数是可以直接运行的,比如Parent()。但是在ES6就不行。我们可以看到转码的构造函数中有_classCallCheck(this, Parent)语句,这句话是防止你通过构造函数直接运行的。你直接在ES6运行Parent(),这是不允许的,ES6中抛出Class constructor Parent cannot be invoked w...

JS中原型和原型链深入理解

2018-05-04
阅读 4 分钟
11.3k
函数(function) 函数对象(function object) 本地对象(native object) 内置对象(build-in object) 宿主对象(host object)

JS中this的使用指南

2018-04-24
阅读 2 分钟
1.4k
这个很好解释,user定义的是全局变量,fn调用的时候,相当于是window.fn(),而this就是指向调用它的对象,也就是window,所以第二个console输入的是lilei.而在最外层,this.user这里面的this其实是指向window的,所以也就相当于window.user,输出lilei。

伪类和伪元素的区别

2018-04-24
阅读 2 分钟
5.7k
第一点讲的是获取不存在与DOM树中的信息。比如<a>标签的:link、visited等,这些信息不存在与DOM树结构中,只能通过CSS选择器来获取;

三栏布局-中栏流动布局的方式

2018-04-24
阅读 3 分钟
2.7k
这个方法的主要思想是布局中栏的时候,要把width设置为auto,保证中栏的宽度自适应。将中栏的左边margin设置为左边栏的宽度,留出左边栏的位置,同时将margin-right设置为ziwrap的margin-right的相反值,这样既能在ziwrap布局后留出右边栏的位置,还能保证中间栏的内容不被右边栏所遮挡住。

Proxy和Reflect的用法简析

2018-01-19
阅读 7 分钟
4.6k
Proxy是ES6的语法。对于ES6的箭头函数、变量的解构赋值,我们都能耳熟能详,熟练使用。对于Proxy 这样的特性却很少用到,一方面考虑到兼容性的问题(babel已经解决了),另一方面确实这些特性不那么容易使用,也就是使用场景不多。

webpack externals 深入理解

2017-11-22
阅读 4 分钟
80k
按照官方文档的解释,如果我们想引用一个库,但是又不想让webpack打包,并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用,那就可以通过配置externals。这个功能主要是用在创建一个库的时候用的,但是也可以在我们项目开发中充分使用。

webpack入门指南

2017-11-14
阅读 9 分钟
3.5k
webpack简单的来讲,是一个前端模块化管理和打包工具,可以将你的文件所依赖的js,css,node包等全部打包成一个bundle文件,并且能够处理各种模块之间依赖问题。在webpack的世界里,一切皆模块!但它又不仅仅是一个打包工具。它不仅能够轻松处理你项目中的依赖关系和加载顺序,还能让这个流程更加智能化,自动化。