当前位置:首页 > 日记 > 正文

nodejs Assert中equal | ,strictEqual | ,deepEqual | ,strictDeepEqual | 比较

nodejs Assert中equal | ,strictEqual | ,deepEqual | ,strictDeepEqual | 比较

1、equal()

equal(actual,expected[,message])

相当于使用 == 运算符比较两个参数值actual和expected是否相等,如果相等不返回任何值,如果不相等则返回带有message属性的AssertionError,若message为undefined,则为默认的错误信息。

var assert = require('assert');assert.equal('1','1');//通过 '1' == '1'assert.equal('1',1);//通过,'1' == 1assert.equal('q','q');//通过assert.equal('abc','abc');//通过 assert.equal('a','b');//不通过,抛出AssertionErrorassert.equal([1,2],[1,2]);//不通过,不能比较数组assert.equal({a:'string'},{a:'string'});//不通过,不能比较json数据等

== 运算符只是数值相等,并不比较类型相等
equal()方法不能比较数组,json等数据类型的数据,换句话说即不进行深度比较,数组和json数据的子对象不进行比较。

2、strictEqual()

strictEqual(actual,expected[,message])

从字面意思来看,就是equal()方法的严格版本,相当于===全等运算符,不仅比较数据值是否相等,还比较数据类型是否相同。跟equal()方法最大的不同就是这点。

var assert = require('assert');assert.strictEqual('1',1);//不通过assert.strictEqual(1,1);//通过 assert.strictEqual('a','a');//通过assert.equal('abc','abc');//通过 assert.equal('a','b');//不通过,抛出AssertionErrorassert.equal([1,2],[1,2]);//不通过,不能比较数组assert.equal({a:'string'},{a:'string'});//不通过,不能比较json数据等

可以看到,这跟equal()方法得出的结果是不同的,比较要严格一些,其他地方都相同。

3 deepEqual()

deepEqual(actual,expected[,message])

前面不管是equal()方法还是strictEqual()都不能进行深度比较,对数组或者json数据格式的数据不能比较相同与否,使用此方法将可以完美解决这个问题。

var assert = require('assert');assert.deepEqual([1,2],[1,2]);//通过,数组比较assert.deepEqual({a:'1'},{a:'1'});//通过assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通过,多维数组assert.deepEqual({a:{b:1}},{a:{b:1}});//通过assert.deepEqual(1,'1');//通过assert.deepEqual([1],['1']);//通过

deepEqual()方法能够比较数组和json等数据,也能比较一般数据,能够进行更为深层次的数据比较。
deepEqual()方法比较并不严格,相当于 == 等于符号,只比较数值,不比较类型

4 strictDeepEqual()

strictDeepEqual(actual,expected[,message])
跟strictEqual()方法相似,相当于=== 全等运算符,不同的是能够比较数组、json数据等深层的数据。

var assert = require('assert');assert.deepEqual([1,2],[1,2]);//通过,数组比较assert.deepEqual({a:'1'},{a:'1'});//通过assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通过,多维数组assert.deepEqual({a:{b:1}},{a:{b:1}});//通过assert.deepEqual(1,'1');//不通过,类型错误assert.deepEqual([1],['1']);//不通过 ,类型错误

deepStrictEqual()方法比deepEqual()更为严格,其他都相同。都能进行深层比较。

5 其他方法

assert模块中还有很多其他很有用的方法,下面列举几个,具体的请看

Nodejs API

assert.notEqual(actual,expected[,message])
assert.notStrictEqual(actual,expected[message])
assert.ifError(value)
assert.fail(message)

相关文章

JS操作xml对象转换为Json对象示例

JS操作xml对象转换为Json对象示例

对象,操作,示例,转换为,电脑软件,最近在处理一个前端功能的时候,遇到了一个问题,原本的系统是使用的xml来存储数据的,而在新的系统上,想要转换为json对象存储,于是就考虑到直接将xml对象转换为json对象。目前为止,通用的转换方式我还没有找到,只有…

word2010中如何修改默认样式

word2010中如何修改默认样式

修改,默认,样式,电脑软件,  说到Word2010文档的默认样式,有同学觉得字号小看起来费劲,时间长了还容易引起眼睛疲劳。那么下面就由小编给大家分享下word2010中修改默认样式的技巧,希望能帮助到您。word2010中修改默认样式的步骤如下:  步骤…

qq飞车伤感符号签名

qq飞车伤感符号签名

飞车,符号,伤感,大全,电脑软件,  一句伤感签名:没有关系我们只是朋友 所以不会有分开的理由 只是偶尔会问我自己 闹够了没有。下面小编给大家分享了关于qq飞车伤感符号签名,希望你喜欢。qq飞车伤感符号签名大全1) 几年前我总觉得我很温暖 …

WPS怎么做树形图图文教程WPS树状图

WPS怎么做树形图图文教程WPS树状图

方法,树状图,怎么做,图图,文教,  wps是金山软件公司的一种办公软件,对日常办公起到了重要作用,那么大家对它的一些功能又有多少了解呢?例如做树形图。下面小编马上就告诉大家WPS做树形图的方法,希望能帮到大家。WPS做树形图的方法WPS做树形…

怎么设置PowerPoint2003中幻灯片的

怎么设置PowerPoint2003中幻灯片的

设置,幻灯片,电脑软件,  幻灯片的制作是个繁琐的过程,要制出一份精美的PPT幻灯片,下功夫那是必须的。幻灯片的来回切换,必不可少。以下是小编为您带来的关于设置PowerPoint2003幻灯片的切换,希望对您有所帮助。设置PowerPoint2003幻灯片的切…

JS数组搜索之折半搜索实现方法分析

JS数组搜索之折半搜索实现方法分析

搜索,数组,折半,方法,电脑软件,本文实例讲述了JS数组搜索之折半搜索实现方法。分享给大家供大家参考,具体如下:一. 方法原理:当从一个给定的序列数组arr中, 查找某个特定值value时, 折半搜索法是这样做的:1. 确定搜索范围的起始点: 起点startI…

echarts饼图扇区添加点击事件的实

echarts饼图扇区添加点击事件的实

点击事件,饼图,扇区,实例,电脑软件,在echarts最后面添加上这段代码就可以了function eConsole(param) {  //alert(option.series[0].data.length);  //alert(option.series[0].data[i]);  //param.dataIndex 获取当前点击索引,  //a…

js实现倒计时关键代码

js实现倒计时关键代码

倒计时,关键,代码,电脑软件,js,我们经常会在一些电商网站上看到秒杀倒计时,双11倒计时.其实倒计时的效果实现起来也是很简单的,并不复杂.首先呢,开始写之前一定要理清楚思路,思路清晰了,那写起来就容易多了,下面我分了几个步骤:1.获取当前…

nodejs中向HTTP响应传送进程的输出

nodejs中向HTTP响应传送进程的输出

响应,传送,进程,输出,输出进程,废话不多说了,直接给大家贴代码了,具体代码如下所述:var spawn = require('child_process').spawn;require('http').createServer(function(req, res) { var child = spawn('tail', ['-f', '/var/log/s…

2016的给力qq签名

2016的给力qq签名

大全,电脑软件,qq,  记住,你要活得和毒品一样、要么不能弃,要么惹不起。哪些签名是你喜欢的呢?下面小编给大家分享了关于2016的给力qq签名,希望你喜欢。2016的给力qq签名大全1) “你瞒着所有人在爱谁”2) 我可以带你混的风生水起…

excel表格计算绝对值的方法excel表

excel表格计算绝对值的方法excel表

计算,方法,绝对值,表格,电脑软件,  Excel中经常需要使用到函数计算绝对值,用函数具体该如何计算绝对值呢?接下来是小编为大家带来的excel表格计算绝对值的方法,供大家参考。excel表格计算绝对值的方法计算绝对值步骤1:如下图,我们要计算A1:A7…

Excel2013怎么用姓名查找其所在位

Excel2013怎么用姓名查找其所在位

查找,步骤,所在位置,姓名,表格,  在一份有着成百上千个名单的excel表格,想要从中找出一个人所在的位置,确实有点难度,但是,因为你用的是excel,所以不用担心,因为有函数这一强大的功能,所以一切都迎刃而解,下面小编就教你怎么用函数从众多名单中找…