Webpack模块化原理图解

2021-02-01
阅读 4 分钟
2.5k
这时模块a,模板b中的代码都暴露在全局环境中,如果模块a中定义了一个方法del。同学b并不知道,在模块b中也定义了一个方法del。这时便造成了命名冲突的的问题。如图

温故而知新:JS 变量提升与时间死区

2019-01-26
阅读 4 分钟
2.8k
开始执行脚本时,执行脚本的第一步是编译代码,然后再开始执行代码,如图 另外,在编译优化方面来说,最开始时也并不是全部编译好脚本,而是当函数执行时,才会先编译,再执行脚本,如图 编译阶段:经历了词法分析,语法分析生成AST,以及代码生成。并且在此阶段,它只会扫描并且抽出环境中的声明变量,声明函数以便准备...

[译]每个单元测试必须回答的5个问题

2018-06-23
阅读 4 分钟
3.2k
大多数开发者都不知道编写单元测试的基本要素。我无法开始计算我看过单元测试失败的次数,只有经过调查我才发现我完全不知道开发人员试图测试哪些功能,更不用说它出了什么问题或者为什么它很重要。

阅读源码利器:gitlens解锁

2018-06-22
阅读 2 分钟
30.8k
查看本地当前分支历史提交记录(本地当前分支为demo,对应的远程分支为origin/demo)和本地当前分支的状态与远程当前分支状态的比较,以及本地当前分支工作区的被更改的文件有哪些。

[译]关于vertical-align:你需要知道的一切

2016-12-01
阅读 8 分钟
6.6k
通常我都有需要垂直对齐在一排上一个接着一个的元素。CSS提供了很多种可能性。有时,我听过float来解决问题,有时使用position:absolute,有时甚至会通过添加margin或者padding属性这种使代码变得比较脏的方式来达到目的。

关于 setTimeout 与 setInterval,你需要知道的一切

2016-11-13
阅读 4 分钟
6.4k
然后,以上只是一半的事实。因为如果一个函数需要在一个间隔时间内重复的执行,你也可以轻松的使用 setTimeout 设定延迟时间,被延迟执行的函数再进行自调用以此实现循环。

CSS:编码规范

2016-05-03
阅读 8 分钟
4.2k
CSS书写格式 1.格式化代码 1.1文件 [建议]:CSS文件使用无BOM的UTF-8编码 1.2缩进 [强制]:使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。 {代码...} 1.3空格 [强制]:选择器 与 { 之间必须包含空格。 {代码...} [强制]:选择器 与 { 之间必须包含空格。 margin: 0; [强制]:列表性属性书在单行时,...

Grunt

2016-04-26
阅读 6 分钟
3.4k
Grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于: ① 压缩文件② 合并文件③ 简单语法检查 Gruntfile.js 作用 这个文件尤其关键,他一般干两件事情:① 读取package信息② 插件加载、注册任务,运行任务(grunt对外的接口全部写在这里面) 组成 1. 包装函数 这个包装函数没什么东西,意思就是我们所有的...

NPM

2016-04-26
阅读 5 分钟
5.7k
NPM(node package manager)主要功能:安装、卸载、更新、查看、搜索、发布 1.npm的配置2.npm的使用:package的安装、卸载、升级、查看、搜索、发布 npm包的安装模式,本地 vs 全局 package版本:常见版本声明形式 3.package.json:包描述信息 npm 配置 npm set {代码...} 上面命令等于为npm init设置了默认值,以后执行n...

Mac 开发环境配置

2016-04-26
阅读 3 分钟
18.4k
Homebrew是包安装工具可以让你安装和更新程序变得更方便,而os x系统默认的包管理工具是Macports,Macports的工作方式和Homebrew类似,都是下载源码然后在本地编译,它安装时依靠本地(确切的说是/opt/local这个文件内)所存在的包进行编译安装,至于系统内存不存在相同的东西,它不关注,这也导致了一个问题,会给系统产生...

CSS:元素高度与宽度的讨论 系列文章(四)

2016-04-02
阅读 1 分钟
2.3k
前言 在之前的文章主要讨论了下面几种元素宽度与高度的计算: 块级非置换元素(例:div) Inline,非置换元素(例:span) Inline,置换元素(例:表单元素)这篇文章将继续讨论下列几种元素的宽度与高度的在不同情况下的高度与宽度的计算 Inline-block,非置换元素在文档流中(例:div设置为inline-block) Inline-block,置换元素在文档...

CSS:不同元素margin:auto的计算

2016-04-02
阅读 2 分钟
4.9k
关于什么元素的分类可以看我这篇文章CSS:关于元素高度与宽度的讨论 系列文章(二) 行内级元素 Inline,非置换元素:如果margin值为auto,则margin-left和margin-right的计算值也就为0 Inline,置换元素:同上 Inline-block,置换元素在文档流中:同上 Inline-block,非置换元素在文档流中:同上 块级元素 块级非置换元素,在文...

Javascript:ajax

2016-03-31
阅读 4 分钟
3.2k
XMLHttpRequest Ajax技术能向服务器请求额外的数据而无需加载页面。而这一技术的核心便是XMLHttpRequest对象(简称XHR)。 XMLHttpRequest方法 {代码...} xhr.open(method,url,async) 接收3个参数:要发送的请求的类型,请求的URL,表示是否异步发送请求的布尔值。 URL相对于当前页面(也可以使用绝对路径) 调用open()方法不...

Javascript--离线应用与客户端储存

2016-03-08
阅读 10 分钟
4.7k
HTML5新定义的属性,这个属性值为true表示设备能上网,值为false表示离线设备。这个属性的关键是浏览器必须知道设备能否访问网络,从而返回正确的值。

Javascript--DOM

2016-02-29
阅读 11 分钟
3.9k
Note:IE中的所有DOM对象都是以COM对象的形式实现的。这意味着IE中的DOM对象与原生Javascript对象的行为或活动特点并不一致。

Javascript---Date类型和Math类型

2016-02-26
阅读 2 分钟
5k
ECMASCript中的Date类型是在早期中Java中的java.util.Date类基础上构建的。为此Date类型使用自UTC(国际协调时间)1970年1月1日午夜(0时)开始经过的毫秒数来保存日期。

javascript--正则表达式

2016-02-26
阅读 4 分钟
2.9k
正则表达式 var expression = / pattern / flags; flags:每个正则表达式都可带一个或多个标志,用以标明正则表达式的行为 g:表示全局模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写模式 m:表示多行模式,即在到达文本末尾时还会继续查找下一行中是否与模式匹配的项。 正则表...

Javascript:String对象总结(二)

2016-02-26
阅读 2 分钟
2.1k
参数:只接受一个参数,要么是一个正则表达式,要么是一个RegExp()对象。 返回:数组。数组中的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着正则表达式捕获组匹配的字符串

[译]:BFC与IFC

2016-02-21
阅读 8 分钟
17.1k
Boxes in the normal flow belong to a formatting context, which may be block or inline, but not both simultaneously. Block-level boxes participate in a block formatting context. Inline-level boxes participate in an inline formatting context.在普通流中的盒子会参与一种格式上下文,这个盒子可能是块盒也...

javascript----事件概述

2016-02-13
阅读 9 分钟
5.4k
通过Javascript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属性。每个元素都有自己的事件处理程序属性,这些属性通常全部小写,例如onclick。将这种属性的值设置为一个函数,就可以指定事件处理程序。

javascript---类与函数化

2016-02-12
阅读 6 分钟
5k
1.对象适合于收集和管理数据,容易形成树型结构。Javascript包括一个原型链特性,允许对象继承另一对象的属性。正确的使用它能减少对象的初始化时间和内存消耗。2.函数它们是javascript的基础模块单元,用于代码复用、信息隐藏和组合调用。函数用于指定对象的行为。一般来说,编程就是将一组需求分解成一组函数和数据结...

响应式布局----像素密度与viewport

2016-01-28
阅读 4 分钟
7.6k
首先举个例子,iphone6s的像素分辨率为1334x750,326ppi,4.7英寸。如图下面我们一个一个来解释。 像素密度 A.定义 326ppi代表的就是像素密度(pixels per inch),指的是每英寸的长度上排列的像素点数量。 a.屏幕分辨率 首先1334x750,代表的是屏幕分辨率,也就是说iPhone6s的屏幕是由纵向像素1334*横向像素750个像素点组成...

CSS3-Transform

2015-11-20
阅读 7 分钟
8.8k
为transform属性指定一个除了none的值便会在元素上创建一个新的局部坐标系统并且应用于这个元素。通过元素的变换模型,元素可以绘制渲染出自己的坐标系统。变换是可以积累的。也就是说,元素可以通过父元素的坐标的系统来建立自己的局部坐标系统。从用户的视角看,一个元素不但可以从它的祖先元素上有效的积累transform...

CSS:Margin与布局

2015-11-16
阅读 7 分钟
4.9k
在讲此之前,必须知道什么是containing-box以及一些宽高度的一些关系,关于containing-box的概念以及与宽高度的关系可看我的前一篇文章CSS:关于元素高度与宽度的讨论 系列文章(三)。

[译] JavaScript:立即执行函数表达式(IIFE)

2015-11-12
阅读 6 分钟
65.6k
可能你并没有注意到,我是一个对于专业术语有一点坚持细节人。所有,当我听到流行的但是还存在误解的术语“自执行匿名函数”多次时,我最终决定将我的想法写进这篇文章里。

JavaScript:数组总结(二)

2015-11-10
阅读 2 分钟
2k
这两个方法都接收两个参数:要查找的项和表示起点位置的索引(可选),indexOf()从数组开头开始向后查,相反的,lastIndexOf()从数组的末尾开始向前查找,返回查找的项在数组中的位置,没有找到返回-1。

javascript:this

2015-11-02
阅读 2 分钟
2.5k
this是函数内部的一个特殊对象,this引用的是函数据以执行的环境对象,在调用函数前this的值并不确定,不同的调用方式会导致this值的改变。可结合这篇文章理解环境对象的概念

javascript:语句

2015-11-02
阅读 2 分钟
2.6k
其中的condition条件可以是任意表达式,而且对这个表达式的求值结果不一定是布尔值。ECMAScript会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。如果对condition求值的结果为true,则执行statement1,如果对condition求值结果为false,则执行statement2。这两个语句既可以是一行代码,也可以是一个代码...

Javascript:数据类型与操作符

2015-11-01
阅读 6 分钟
2.9k
表示变量已声明,但未被初始化。需要注意的是当使用typeof操作符判断数据类型时,未被声明的变量和未初始化的变量返回的值都为undefined

CSS:关于元素高度与宽度的讨论 系列文章(三)

2015-09-20
阅读 8 分钟
6.7k
在CSS:关于元素高度与宽度的讨论 系列文章(一)中讨论了display为display:block的置换元素的宽度与高度在不同情况下的表现,但是有些地方并不严谨,因此在这里做一个补充,在补充前先简单介绍一下css盒模型以及其在可视化格式模型布局中盒子被管理的几个要点。在CSS:关于元素高度与宽度的讨论 系列文章(二)中介绍了块...