Node.js - 断言

什么是断言? 程序中的断言是什么意思,让我们带着疑问一步步探索

断言即我们相信程序某个特定点布尔表达式为真

 

举个例子就是:

我相信你是对的,然后让别人判断一下你是对的或错的,最后我得到结果。

 

好了,进入正题

 

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])

只测试可枚举的自身属性,不测试对象的原型、连接符、或不可枚举的属性(这些情况使用 assert.deepStrictEqual())。 例如,下面的例子不会抛出 AssertionError,因为 RegExp 对象的属性不是可枚举的:

原型:原本的类型

连接符:"+"

可枚举的自身属性:

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基本类型,返回null var 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));
复制代码

 

posted @   Sunsin  阅读(643)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示