ES6常用新特性——读《Understanding ECMAScript 6》总结

现在ES6在很多项目中大量使用。最近我也花时间看了一下《Understanding ECMAScript6》的中文电子书。在这里总结了一些在实际开发中常用的新特性。

块级作用域

在ES6之前,JS只有一种变量声明方式——使用 var 关键字声明的变量。这种声明变量的方式,无论其实际声明位置在何处,都会被视为声明于所在函数的顶部(如果声明不在任意函数内,则视为在全局作用域的顶部)。这就是所谓的变量提升 hoisting )。
ES6 引入了块级作用域,让变量的生命周期更加可控。

ES6的rest参数和扩展运算符

rest参数扩展运算符都是ES6新增的特性。
rest参数的形式为:...变量名扩展运算符是三个点(...)。

rest参数

rest参数用于获取函数的多余参数,这样就不需要使用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

JavaScript数组迭代(遍历)方法

前言

ES5和ES6中新增了不少东西,对于数组而言,新增了不少迭代方法,让我们可以抛弃for循环,更方便的写JS代码。

正文

ES5和ES6中新增的的数组迭代方法如下:

  • forEach
  • map
  • filter
  • some
  • every
  • reduce / reduceRight
  • find / findIndex

其中,find / findIndex是ES6新增的,其余都是ES5新增的。所以这些方法对低版本IE都不兼容。
接下来我们看看这些方法如何使用并在低版本IE进行兼容。

Koa2源码阅读笔记

引言

最近空闲时间读了一下Koa2的源码;在阅读Koa2(version 2.2.0)的源码的过程中,我的感受是代码简洁、思路清晰(不得不佩服大神的水平)。
下面是我读完之后的一些感受。

Koa的设计理念

Koa 是一个轻量级的、极富表现力的 http 框架。
一个web request会通过 Koa 的中间件栈,来动态完成 response 的处理。
Koa2 采用了 async 和 await 的语法来增强中间件的表现力。
Koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库。

Koa基本组成

Koa源码非常精简,只有四个文件:

  • application.js:框架入口;负责管理中间件,以及处理请求
  • context.js:context对象的原型,代理request与response对象上的方法和属性
  • request.js:request对象的原型,提供请求相关的方法和属性
  • response.js:response对象的原型,提供响应相关的方法和属性

紧贴底部的页脚

前言

在写前端页面时,经常会遇到这种情况:有一个具有块级样式的页脚,当页面内容足够长时它一切正常;有的时候,由于页面长度不够,页面底部的页脚会很尴尬的跑上来;页脚不能像我们期望中那样“紧贴”在视口的最底部,而是紧跟在内容的下方。

那么怎样做到内容多时页脚在内容下方,内容少时页脚“紧贴”在视口底部?我总结了四种方法。

CSS选择器整理

很多人都觉得CSS特别简单,但其实真正写好CSS并不容易,CSS的每一点其实内容都很多,就拿选择器来说,CSS选择器大概可以分为五类:

  • 元素选择器
  • 关系选择器
  • 属性选择器
  • 伪类选择器
  • 伪对象选择器

JavaScript必会技能——正则表达式

正则表达式是什么

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

为什么使用正则表达式

  • 测试字符串内的模式。例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
  • 替换文本。可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
  • 基于模式匹配从字符串中提取子字符串。可以查找文档内或输入域内特定的文本。

移动Web开发小结

在做移动Web开发时有很多地方跟PC端是不一样的,需要不一样的设置,这里就记录下移动Web开发中有用的设置和一些通用代码。

HTML

设置页面宽度等于设备宽度,并禁止用户缩放页面

1
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />

忽略页面中的数字识别为电话,忽略email识别

1
<meta name="format-detection" content="telphone=no, email=no" />

JS开发中的一些小技巧和方法

前言

这两年前端很火,JavaScript又是前端的必会技能,在JavaScript开发中其实有一些有意思的小技巧和方法,本文记录了一些我工作中遇到的一些技巧和方法。

正文

生成指定范围内的随机数

当我们需要获取指定范围(min,max)内的整数的时候,下面的代码非常适合;这段代码用的还挺多的。

1
2
3
function setRadomNum(min,max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}