1 什么是 Jest?
Jest
Jest是 Facebook 的一套开源的 JavaScript 测试框架, 它自动集成了断言、JSDom、覆盖率报告等开发者所需要的所有测试工具,是一款几乎零配置的测试框架。并且它对同样是 Facebook 的开源前端框架 React 的测试十分友好。
2 安装Jest
2.1 初始化package.json
在shell中输入以下命令,初...
使用模拟实现的方式探究call 和 apply 的原理
call
作用:
call() 方法就是在使用一个指定 this 值和若干个指定的参数值的前提下调用某个函数或者方法。
var foo = { value : 1}function bar() { console.log(this.value)}// 如果不对this进行绑定执行bar() 会返回undefinedbar.call(foo) // 1
也就是...
factory.png
1 什么是工厂模式?
工厂模式是用来创建对象的一种最常用的设计模式。我们不暴露创建对象的具体逻辑,而是将将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。工厂模式根据抽象程度的不同可以分为:简单工厂,工厂方法和抽象工厂。
如果只接触过JavaScript这门语言的的人可能会对...
setTimeout函数之循环和闭包
前言
之前对于setTimeout的一个经典问题的理解总是感到很迷惑,现在好像清晰一点了,所以把我的理解写下来,我对js的理解也不深入,如果有错误,请务必指出。以免误导其他看到这篇文章的小白。-.
先来点开胃菜
先看看这种很常见的问题吧:
for (var i = 1; i <= 5; i++) { s...
前提
安装Node
新建一个单独的目录安装MongoDB并开启服务
新建项目目录,npm init初始化并安装mongoose包npm i mongoose -S
建议npm i -g supervisor安装supervisor,用于监听当前目录下 node 和 js 后缀的文件,当这些文件发生改动时,supervisor 会自动重启程序。
运行mongo连接数据库
核心
名词解释
Sc...
call、apply、bind的作用是改变函数运行时this的指向,所以先说清楚this。
以下是函数的调用方法:
方法调用模式:
当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象。
var a = 1 var obj1 = { a:2, ...
分组类型
有四种分组类型
捕获型()
非捕获型(?:)
正向前瞻型(?=)
反向前瞻型(?!)
捕获型
分组下面的正则表达式匹配dotdotdot
/dotdotdot/
更优雅的写法是将其分组,由一对圆括号包裹的小整体称为分组
/(dot){3}/
候选一个分组中可以有多个候选表达式,用|分隔,|意为“或”
var reg = /I love (apple|oran...
最近做音乐播放器,基本功能已实现,准备再写一个循环播放功能,其中涉及列表循环、单曲循环、随机循环。实现这几个功能本质上就是维护一个列表,而列表可视为一个数组,要实现曲目随机循环,也就是实现数组项的随机重排。本文仅讨论实现随机循环的准备工作——即数组随机排序。
概念洗牌算法是一个形象术语...
问答
1、CSS和JS在网页中的放置顺序是怎样的?
一般来说css 放在Head标签里;Js放在body标签里最后面。
css放在前端加载时因为页面渲染时首先是根据DOM结构生成一个DOM树,然后加上CSS样式生成一个渲染书,如果CSS放在后面可能页面会出现闪的感觉,或者是白屏,或者布局混乱样式很丑直到CSS加载完成。
JS会阻...
问答题
1. 函数声明和函数表达式有什么区别
1.函数声明必须有标识符,也就是常说的函数名;函数表达式可以省略函数名。
函数声明(要带标识符)
function functionName(arg1, arg2, ...){ <!-- function body --> }
函数表达式
省略标识符:
var variable=function(arg1, arg2, ...){ <...