javascript单元测试实践

javascript单元测试实践
最近往 npm 上发布一些包,为了保证后续运行没有很严重的bug,需要给程序加一些单元测试,看下整体的运行的情况,参照了最近使用的 vue-cli 生成项目的测试部分代码,使用 karma + mocha + phantomjs + chai 完成了整个项目的单元测试工作。 测试组件的介绍 测试组件选取karma为测试管理工具,mocha为测试库,chai为断言库,phantomjs为测试浏览器。 Karma 是一个基于nodejs的JavaScript测试执行过程管理工...

什么是浅复制和深复制?有什么区别?如何实现Object的深复制?

什么是浅复制和深复制?有什么区别?如何实现Object的深复制?
算法题只有一道:什么是浅复制和深复制?有什么区别?如何实现Object的深复制? 首先我对这个问题进行分析,Object是一个树形结构,所以我采用递归的方法进行复制。面试官随后提问能否通过循环的方法?我思考了一会,回答说循环的关键在于循环条件的设置,我想借助栈作为循环判断的条件,当栈为空时,循环结束。当时我立马反应过来,因为Object子节点的个数不确定,可能入栈出栈会存在一定问题。面试官随后...

NodeJS+Express+Socket.io的一个简单例子

NodeJS+Express+Socket.io的一个简单例子
关键字:NodeJS,Express,Socket.io。 OS:Windows 8.1 with update pro。   1.安装NodeJS:http://nodejs.org/。   2.初始化一个NodeJS web应用: 打开CMD窗口。 运行cmd:“mkdir myapp”,新建一个文件夹,名为myapp。 运行cmd:“cd myapp”,切换到文件夹myapp。 运行cmd:“npm init”,创建文件package.json。   3.Express入门应用: 在上面的CMD窗口运行cmd:“npm install express --save...

无参数装饰器模式

无参数装饰器模式
// /无参数装饰器 function Fn(){ this.name = '1' } function Gn(){ this.name = '2' } function d(fn){ fn.sayname = function(){ return this.name; }; return fn } var fn = new Fn(); var gn = new Gn(); fn = d(fn) gn = d(gn) //有参数装饰器 function Fn(){ this.name = 'aaa' } function Gn(){ this.name = 'bbb' } funct...

React 组件间通讯

React 组件间通讯
React 组件间通讯 说 React 组件间通讯之前,我们先来讨论一下 React 组件究竟有多少种层级间的关系。假设我们开发的项目是一个纯 React 的项目,那我们项目应该有如下类似的关系: 父子:Parent 与 Child_1、Child_2、Child_1_1、Child_1_2、Child_2_1 兄弟:Child_1 与 Child_2、Child_1_1 与 Child_2、etc. 针对这些关系,我们将来好好讨论一下这些关系间的通讯方式。 (在 React 中,React 组件之间的...

写出整洁的 JavaScript 代码

写出整洁的 JavaScript 代码
前言 每个人写代码风格不一样,但本文给出了十个不同正反例说明,大家可以多参考,但不一定要遵守。本文由@alivebao授权分享,较长多图,大家可以慢慢看。 正文从这开始~ 介绍 作者根据Robert C. Martin《代码整洁之道》总结了适用于Java的软件工程原则《Clean Code Java》。 本文是对其的翻译。 不必严格遵守本文的所有原则,有时少遵守一些效果可能会更好,具体应根据实际情况决定。这是根据《代码整洁...

react子组件如何向父组件传值

react子组件如何向父组件传值
其实很简单,概括起来就是:react中state改变了,组件才会update。父写好state和处理该state的函数,同时将函数名通过props属性值的形式传入子,子调用父的函数,同时引起state变化。子组件要写在父组件之前。具体写法看下面3个例子。 例子1.这里如下图,用户邮箱为父,绿色框为子。 父组件为用户输入的邮箱设好state,即“{email: ''}”,同时写好处理state的函数,即“handleEmail”,这两个名称随意起;再将...

使用Redux管理你的React应用

使用Redux管理你的React应用
因为redux和react的版本更新的比较频繁,博客园这里用的redux版本是1.0.1,如果你关心最新版本的使用技巧,欢迎来我的Github查看(https://github.com/matthew-sun/blog/issues/18) ,我会在这里进行持续的更新和纠错。 React是最好的前端库,因为其发源于世界上最好的后端语言框架。 ---信仰 4.0 will likely be the last major release. Use Redux instead. It's really great. —Flummox框架作者 acdliteA...

Redux状态管理方法与实例

Redux状态管理方法与实例
状态管理是目前构建单页应用中不可或缺的一环,也是值得花时间学习的知识点。React官方推荐我们使用Redux来管理我们的React应用,同时也提供了Redux的文档来供我们学习,中文版地址为http://cn.redux.js.org/index.html   前言 虽然官方文档上说只需几分钟就能上手 Redux,但是我个人认为即便你看个两三天也可能上手不了,因为文档里面的知识点不仅数量较多,而且还艰涩难懂,不结合一些实例来看很难...

关于JavaScript的浅拷贝和深拷贝

关于JavaScript的浅拷贝和深拷贝
在 JS 中有一些基本类型像是Number、String、Boolean,而对象就是像这样的东西{ name: 'Larry', skill: 'Node.js' },对象跟基本类型最大的不同就在于他们的传值方式。 基本类型是按值传递,像是这样:在修改a时并不会改到b var a = 25; var b = a; b = 18; console.log(a);//25 console.log(b);//18 但对象就不同,对象传的是按引用传值: var obj1 = { a: 10, b: 20, c: 30 }; var obj2 = obj1;...
Copyright © web前端技术开发个人博客 保留所有权利.   Theme  Ality

用户登录