Node学习一 断言

引入assert:

	const assert = require('assert')
	const strict  = require('assert')

assert.AssertionError() assert抛出的所有错误都是该类的实例

	const {message}  = new assert.AssertionError({
		//输出的错误信息
		message:"noEqual",
		//实际值
		actual:1,
		//比较值,期望值
		expected:2,
		//比较模式 equal strictEuqal等
		operator:'strictEqual'
	})

assert.equal(actual,expected,[message])

非严格相等
assert.equai(1,'1','noEqual') // 不会抛出错误 因为他们之间存在不严格相等关系

assert.strictEqual() 严格相等 采用tc39 someValue比较方法

	assert.strictEqual(1,'1') //抛出错误
	
	assert({name:'123'},{name:'123'}) //抛出错误 因为他们不属于同一个对象,在内存中的位置也不同
	//同理,比较两个值完全一致的数组也会抛出错误
	//因为他们也不属于真正意义上的 " 同一个数组 "

assert.deepEqual() 深度不严格相等

	assert.deepEqual([1,2,3,['1',2,3]],[1,2,3,[true,2,3]]) 
	//不会抛出错误 因为 '1'和 true 存在不严格相等的关系

assert.deepStrictEqual() 深度严格相等

只考虑可枚举的自身属性 + someValue比较方法,同时,对象的原型也会被严格相等比较
assert({name:'123'},{name:'123'}) //不会抛出错误
assert([[1,2,3],2,3],[[1,2,3],2,3] //抛出错误

assert.fail(actual,[message])

assert.ok(actual,[message])

//都不会抛出错误
assert.fail(false,'this is false')
assert.ok(true,'this is true')

相关链接:

tc39.github.io-same-value

你可能感兴趣的:(node.js)