什么是断言? 程序中的断言是什么意思,让我们带着疑问一步步探索
断言即我们相信程序某个特定点布尔表达式为真
举个例子就是:
我相信你是对的,然后让别人判断一下你是对的或错的,最后我得到结果。
好了,进入正题
assert - 断言(后面的参数我就不一一介绍了,直接上code)
1 assert(value[, message]) 2 assert(value,meesage) 3 //上述两种格式是一样的,程序中的‘[]’代表可选部分,‘<>’代表必选部分。 4 5 assert.deepEqual(actual, expected[, message]) 6 assert.deepStrictEqual(actual, expected[, message]) 7 assert.doesNotThrow(block[, error][, message]) 8 assert.equal(actual, expected[, message]) 9 assert.fail(message) 10 assert.fail(actual, expected[, message[, operator[, stackStartFunction]]]) 11 assert.ifError(value) 12 assert.notDeepEqual(actual, expected[, message]) 13 assert.notDeepStrictEqual(actual, expected[, message]) 14 assert.notEqual(actual, expected[, message]) 15 assert.notStrictEqual(actual, expected[, message]) 16 assert.ok(value[, message]) 17 assert.strictEqual(actual, expected[, message]) 18 assert.throws(block[, error][, message])
assert(value[, message])
const assert = require('assert');assert(true, console.log('***打印出信息了'));
assert.deepEqual(actual, expected[, message])
只测试,不测试对象的、连接符、或不可枚举的属性(这些情况使用 )。 例如,下面的例子不会抛出 AssertionError
,因为 对象的属性不是可枚举的:
原型:原本的类型
连接符:"+"
可枚举的自身属性:
console.log(Object.keys(var_name)) //输出的可枚举的自身属性
不可枚举的属性:可枚举和不可枚举类型的比较点就是:能否被for..in遍历到
var num = new Number();for (var pro in num) { console.log("num." + pro + " = " + num[pro]);}
//forTest.js //不可枚举的js基本类型,返回nullvar num = new Number();for (var pro in num) { console.log("num." + pro + " = " + num[pro]);}function Person() { this.name = "KXY";}Person.prototype = { constructor: Person, job: "student",};var kxy = new Person();Object.defineProperty(kxy, "sex", { value: "female", enumerable: false});// 不可枚举的sex,其主要原因在于enumerable(true即可枚举)for (var pro in kxy) { console.log("kxy." + pro + " = " + kxy[pro]);}// 可枚举的自身属性console.log(Object.keys(kxy));