网络埋伏纪事 发布于 06月16, 2017

JavaScript: 为初学者介绍 this 关键字

原文:https://hackernoon.com/javascript-the-keyword-this-for-beginners-fb5238d99f85

alt

理解 JavaScript 中的关键字 this,以及它指向什么,有时候可能是有点复杂。幸好有五个通用规则可以用来确定 this 绑定到什么。虽然这些规则在某些情况下并不适用,不过绝大多数情况应该能帮你搞定。所以,下面我们开始吧!

  1. this 的值通常是由一个函数的执行上下文决定的。所谓执行上下文就是指一个函数如何被调用。
  2. 必须要知道的是,每次函数被调用时,this 都有可能是不同的(即指向不同的东西)。
  3. 如果依然搞不清楚第一条和第二条的含义,没有关系,本文结尾的时候会搞清楚的。

阅读全文 »

网络埋伏纪事 发布于 06月16, 2017

JavaScript: 为初学者介绍正则表达式

原文:https://hackernoon.com/javascript-learn-regular-expressions-for-beginners-bb6107015d91

alt

不久前,正规表达式对我来说是挺可怕的 - 对我未经训练的眼睛来说,它们只不过是一堆乱七八糟的字符串。不幸的是,我让那些“乱七八糟”的字符串吓倒我太久了。当我终于决定冒险学习正则表达式时,我很惊讶要学习的基本概念有多简单。

不要犯同样的错误。是的,正则表达式可能非常复杂,但实际上学习基础知识很容易。下面我一起学习基本的正则表达式吧...

阅读全文 »

网络埋伏纪事 发布于 06月15, 2017

【译】如何用Mocha测试JavaScript - 第2部分

原文:http://www.zcfy.cc/article/3190

昨天我们学习了Mocha的基础知识。今天,我们会把Mocha整合到一个项目中,这样就可以看到它是如何实际工作的。

这个教程要讲什么?

本教程将提供如何使用Mocha进行测试的小型真实示例。到教程结束时,我们将成功使用Mocha测试现有的JS文件。在读本教程之前,应该先了解Mocha是什么,如何分组测试以及如何使用断言库。如果需要复习,请参阅我的第一篇Mocha教程

阅读全文 »

网络埋伏纪事 发布于 05月26, 2017

在 Nginx 中开启 GZip 压缩,加快博客加载速度

本博客使用 Nginx 反向代理 Node,正好玩玩 GZip 压缩。

概述

简单点讲,GZip 就是一种压缩技术。经过 GZip 压缩后的资源文件(比如网页中的HTML、XML、CSS、JavaScript、JSON、图片文件等等),大小可以变为原来的 30%以上。

在网站和 Web 应用中,如果 Web 服务器端能自动把用户请求的资源文件用 GZip 压缩,然后再发送给客户端,而浏览器端又中能自动解压或者解析经 GZip 压缩过后的资源文件,那么就可以有效减少网络带宽的消耗,提升传输速度,用户浏览网页的速度就会快很多。

好消息是,现代浏览器都支持对 GZip 压缩过的资源的自动解压解析。而流行的 Web 服务器也都带有支持 GZip 压缩的模块。比如,Nginx 上就带有支持 GZip 压缩 的 ngx_http_gzip_module 模块,只要在 Nginx 的配置文件中配置开启 GZip 压缩,并设置一定参数就可以搞定。

启用 GZip 压缩是网站 和 Web 应用性能优化的手段之一。Steve Souders 在《高性能网站建设指南》《高性能网站建设进阶指南》这两本书里,已经详细描述了 GZip 压缩的原理。有兴趣的可以去看看这两本书。

阅读全文 »

网络埋伏纪事 发布于 05月26, 2017

【译】组合软件:0. 简介

原文:http://www.zcfy.cc/article/2855

注意:这是从头开始在 JavaScript ES6+ 中学习函数式编程和组合软件技术的“组合软件”系列的介绍。敬请关注。还有更多!

目录:

阅读全文 »

网络埋伏纪事 发布于 05月19, 2017

【译】浏览器前端优化

原文:http://www.zcfy.cc/article/2847

优化全都是与速度和满意度有关。

  • 从用户体验的角度,我们希望前端提供可以快速加载和执行的网页。

  • 而从开发者体验的角度,我们希望前端是快速、简单而规范的。

这不仅会给我们带来快乐的用户和快乐的开发者,而且由于 Google 偏向于优化,SEO 排名也会显著提高。

如果你已经花费了大量时间来改善你网站的 Google Pagespeed Insights分数,那么这将有助于揭示这一切实际上意味着什么,以及我们必须为优化前端所采取的大量策略。

阅读全文 »

网络埋伏纪事 发布于 05月15, 2017

CSS 中的可视化格式模型基础 - CSS 中的布局基础

译者按:本文翻译自 Eric Meyer 的 CSS 权威指南第四版。

内容:

  • 学习元素盒类型详情,包括 block、inline、inline-block、list-item、run-in 盒
  • 改变元素生成的盒子类型,从 block 到 inline,或者从 list-item 到 inline
  • 深入水平和垂直块盒格式化的复杂性
  • 探索行内布局的核心概念:匿名文本、em 盒、内容区、leading、行内盒 和行盒
  • 理解可替换和非可替换行内元素的格式化区别。

概述: 本书主要讲解 CSS 中的可视化渲染的理论部分。为什么用整本书来写可视化渲染的理论基础呢?答案是,作为一个 CSS 内包含的如此开放和强大的模型,在一本书中想要涵盖属性和效果的每一种可能的组合方式是不可能的。很明显,我们会在使用 CSS 时发现更多的新方式。在探索 CSS 的课程中,你会遇到浏览器中看似奇怪的行为。在深入理解可视化渲染模型如何在 CSS 中起作用后,你才能判断一种行为是否是 CSS 定义的渲染引擎的正确结果(如果意外),或者是否是无意中发现的一个需要报告的 bug。

阅读全文 »

网络埋伏纪事 发布于 05月15, 2017

CSS 可视化格式模型概述

译者按:可视化格式模型可以说是 CSS 规范中最最重要的一部分。要精通 CSS 布局,这一部分内容必须掌握透彻。个人认为 CSS 高手和菜鸟的区别就在于:在布局时,菜鸟在布局时候用什么属性基本都是很盲目,随意下手,出现问题就去网上找解决方案或者瞎试,就算最后解决了,也不知道为什么,下次依然会犯错;而熟悉规范这部分的高手写一个属性就知道会对其它部分产生什么影响,所以犯错会很少,开发效率也高。

本文是 CSS Mastery 第三版的第三章的翻译。


浮动、定位和盒模型是需要掌握的一些最重要的 CSS 概念。这些概念控制了元素在页面上安排和显示的方式,并形成了很多布局技术的基础。最近,专门设计用来控制布局的新标准已经提出了,我们会在之后的章节中分别看到这些标准。不过,本章所学的概念会帮助你完全掌握盒模型的难点、绝对定位和相对定位之间的区别、以及浮动和清除浮动的工作原理。一旦牢固掌握了这些基础知识,使用 CSS 开发网站就会变得容易得多。本章中将学习如下内容:

  • 盒模型的难点
  • 外边距如何折叠以及为什么会折叠
  • 不同的定位属性和值
  • 浮动和清除的工作机制
  • 什么是格式化上下文

阅读全文 »