国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比較

2019-11-19 15:24:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1、equal()

equal(actual,expected[,message])

相當(dāng)于使用 == 運(yùn)算符比較兩個(gè)參數(shù)值actual和expected是否相等,如果相等不返回任何值,如果不相等則返回帶有message屬性的AssertionError,若message為undefined,則為默認(rèn)的錯(cuò)誤信息。

var assert = require('assert');assert.equal('1','1');//通過(guò) '1' == '1'assert.equal('1',1);//通過(guò),'1' == 1assert.equal('q','q');//通過(guò)assert.equal('abc','abc');//通過(guò) assert.equal('a','b');//不通過(guò),拋出AssertionErrorassert.equal([1,2],[1,2]);//不通過(guò),不能比較數(shù)組assert.equal({a:'string'},{a:'string'});//不通過(guò),不能比較json數(shù)據(jù)等

== 運(yùn)算符只是數(shù)值相等,并不比較類型相等
equal()方法不能比較數(shù)組,json等數(shù)據(jù)類型的數(shù)據(jù),換句話說(shuō)即不進(jìn)行深度比較,數(shù)組和json數(shù)據(jù)的子對(duì)象不進(jìn)行比較。

2、strictEqual()

strictEqual(actual,expected[,message])

從字面意思來(lái)看,就是equal()方法的嚴(yán)格版本,相當(dāng)于===全等運(yùn)算符,不僅比較數(shù)據(jù)值是否相等,還比較數(shù)據(jù)類型是否相同。跟equal()方法最大的不同就是這點(diǎn)。

var assert = require('assert');assert.strictEqual('1',1);//不通過(guò)assert.strictEqual(1,1);//通過(guò) assert.strictEqual('a','a');//通過(guò)assert.equal('abc','abc');//通過(guò) assert.equal('a','b');//不通過(guò),拋出AssertionErrorassert.equal([1,2],[1,2]);//不通過(guò),不能比較數(shù)組assert.equal({a:'string'},{a:'string'});//不通過(guò),不能比較json數(shù)據(jù)等

可以看到,這跟equal()方法得出的結(jié)果是不同的,比較要嚴(yán)格一些,其他地方都相同。

3 deepEqual()

deepEqual(actual,expected[,message])

前面不管是equal()方法還是strictEqual()都不能進(jìn)行深度比較,對(duì)數(shù)組或者json數(shù)據(jù)格式的數(shù)據(jù)不能比較相同與否,使用此方法將可以完美解決這個(gè)問(wèn)題。

var assert = require('assert');assert.deepEqual([1,2],[1,2]);//通過(guò),數(shù)組比較assert.deepEqual({a:'1'},{a:'1'});//通過(guò)assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通過(guò),多維數(shù)組assert.deepEqual({a:{b:1}},{a:{b:1}});//通過(guò)assert.deepEqual(1,'1');//通過(guò)assert.deepEqual([1],['1']);//通過(guò)

deepEqual()方法能夠比較數(shù)組和json等數(shù)據(jù),也能比較一般數(shù)據(jù),能夠進(jìn)行更為深層次的數(shù)據(jù)比較。
deepEqual()方法比較并不嚴(yán)格,相當(dāng)于 == 等于符號(hào),只比較數(shù)值,不比較類型

4 strictDeepEqual()

strictDeepEqual(actual,expected[,message])
跟strictEqual()方法相似,相當(dāng)于=== 全等運(yùn)算符,不同的是能夠比較數(shù)組、json數(shù)據(jù)等深層的數(shù)據(jù)。

var assert = require('assert');assert.deepEqual([1,2],[1,2]);//通過(guò),數(shù)組比較assert.deepEqual({a:'1'},{a:'1'});//通過(guò)assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通過(guò),多維數(shù)組assert.deepEqual({a:{b:1}},{a:{b:1}});//通過(guò)assert.deepEqual(1,'1');//不通過(guò),類型錯(cuò)誤assert.deepEqual([1],['1']);//不通過(guò) ,類型錯(cuò)誤

deepStrictEqual()方法比deepEqual()更為嚴(yán)格,其他都相同。都能進(jìn)行深層比較。

5 其他方法

assert模塊中還有很多其他很有用的方法,下面列舉幾個(gè),具體的請(qǐng)看

Nodejs API

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 晋城| 龙口市| 古田县| 合肥市| 望奎县| 宜宾市| 松原市| 南宁市| 静海县| 福建省| 西平县| 建阳市| 应城市| 布尔津县| 万全县| 黔东| 图木舒克市| 舟山市| 九台市| 都兰县| 德令哈市| 潮安县| 蒲江县| 赤城县| 淳安县| 浠水县| 铅山县| 称多县| 镇宁| 玛纳斯县| 黄大仙区| 博兴县| 澄迈县| 新丰县| 嘉祥县| 明溪县| 鄢陵县| 新源县| 赣榆县| 承德县| 鄂托克前旗|