
- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 从表中选择数据
- Node.js - MySQL Where 条件
- Node.js - MySQL Order By 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 联接
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制
- Node.js - MongoDB 联接
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - assert.deepStrictEqual() 函数
Node.js assert.deepStrictEqual() 函数将对它的两个参数 actual 和 expected 进行深度严格相等性测试。由于此方法在比较方面存在大量差异,因此最好优先使用 assert.deepStrictEqual() 而不是 assert.deepEqual()。
语法
以下是 Node.js assert.deepStrictEqual() 函数 的语法:
assert.deepStrictEqual(actual, expected[, message]);
参数
此函数接受三个参数。下面将对它们进行描述。
Actual − (必需) 此参数中传递的值将被评估。该值可以是任何类型。
Expected − (必需) 此参数中传递的值将与 actual 值进行比较。该值可以是任何类型。
Message − (可选) 可以将字符串或错误类型作为输入传递到此参数中。
返回值
如果 actual 和 expected 不匹配,则此函数将在终端返回 AssertionError。
示例
在下面的示例中,我们创建了两个具有相同属性的对象,并且我们更改了某个特定属性的类型(在第一个对象中为整数,在第二个对象中为字符串)。然后,我们将这两个对象作为 actual 和 expected 传递给 Node.js assert.deepStrictEqual() 函数,并将文本传递给 message 参数。
const assert = require('assert'); var object1 = { Name: 'Roy', Age: 34, Nickname: 'Godsway' }; var object2 = { Name: 'Roy', Age: '34', Nickname: 'Godsway' } assert.deepStrictEqual(object1, object2, 'Both the objects are not identical');
输出
当我们编译并运行代码时,该函数将抛出 AssertionError 以及消息到输出,因为 actual 和 expected 不相同。这是因为 34 !== '34'。
assert.js:79 throw new AssertionError(obj); ^ AssertionError [ERR_ASSERTION]: Both the objects are not identical at Object.<anonymous> (/home/cg/root/639c16a06de3d/main.js:15:8) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3) at Function.Module.runMain (internal/modules/cjs/loader.js:744:10) at startup (internal/bootstrap/node.js:238:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
示例
在下面的示例中,我们创建了两个具有相同属性的对象。
const assert = require('assert'); var object1 = { Name: 'Roy', Age: 34, Nickname: 'Godsway' }; var object2 = { Name: 'Roy', Age: 34, Nickname: 'Godsway' } assert.deepStrictEqual(object1, object2, 'Both the objects are identical');
输出
当我们编译并运行代码时,该函数不会将 AssertionError 抛出到输出,因为 actual 和 expected 是相同的。这是因为 34 == 34。
// Returns nothing
示例
在下面的示例中,我们将一个 字符串 和一个对象传递给函数进行比较。
const assert = require('assert'); assert.deepStrictEqual(new String('Tutorialspoint'), Object('Tutorialspoint'));
输出
当我们编译并运行代码时,该函数不会将 AssertionError 抛出到输出,因为 actual 和 expected 是相同的。这是因为在展开后,对象和字符串是相同的。
// Returns nothing
示例
在下面的示例中,我们将 0 和 -0 传递给函数进行比较。
const assert = require('assert'); var zero = 0; var negzero = -0 assert.deepStrictEqual(zero, negzero, 'Both are not same');
输出
当我们编译并运行代码时,该函数将抛出 AssertionError 以及 message 到输出,因为 actual 和 expected 不相同。这是因为 0 !== -0。
assert.js:79 throw new AssertionError(obj); ^ AssertionError [ERR_ASSERTION]: Both are not same at Object.<anonymous> (/home/cg/root/639c16a06de3d/main.js:5:8) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3) at Function.Module.runMain (internal/modules/cjs/loader.js:744:10) at startup (internal/bootstrap/node.js:238:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
示例
在下面的示例中,我们将 -0 和 -0 传递给函数进行比较。
const assert = require('assert'); var neggzero = -0; var negzero = -0 assert.deepStrictEqual(neggzero, negzero, 'Both are same');
输出
当我们编译并运行代码时,该函数不会将 AssertionError 抛出到输出,因为 actual 和 expected 是相同的。这是因为 -0 == -0。
// Returns nothing
示例
在下面的示例中,我们将 5 和 6 传递给函数进行比较。但是我们没有将任何文本传递到 message 参数中。因此,该函数将分配一个默认错误消息。
const assert = require('assert'); assert.deepStrictEqual(5, 6);
输出
当我们编译并运行代码时,该函数将抛出 AssertionError 以及该函数分配给输出的 默认错误消息,因为 actual 和 expected 不相同。
assert.js:79 throw new AssertionError(obj); ^ AssertionError [ERR_ASSERTION]: Input A expected to strictly deep-equal input B: + expected - actual - 5 + 6 at Object.<anonymous> (/home/cg/root/639c3b5c17b34/main.js:3:8) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3) at Function.Module.runMain (internal/modules/cjs/loader.js:744:10) at startup (internal/bootstrap/node.js:238:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)