Node.js Метод util.isDeepStrictEqual ()

Опубликовано: 29 Июля, 2021

Модуль «util» предоставляет «служебные» функции, которые используются для отладки. Для доступа к этим функциям нам нужно вызвать их (с помощью ' require (' util ') ').

Метод util.isDeepStrictEqual () (добавлен в v9.0.0) представляет собой встроенный программный интерфейс приложения модуля util, который представляет собой функцию экспортируемого типа, которая проверяет глубокое равенство двух значений, то есть между фактическим ( значение1 ) и ожидаемым ( значение2 ) параметры. Глубокое равенство - это метод, который помогает рекурсивно оценивать перечисляемые «собственные» свойства дочерних объектов по нескольким правилам.

Синтаксис:

 const util = require ('утилита');
util.isDeepStrictEqual (значение1, значение2);

Параметры: эта функция принимает два параметра, как указано выше и описано ниже:

  • val1 <any> : любая переменная, класс, функция, объект или примитив JavaScript.

  • val2 <any> : любая переменная, класс, функция, объект или примитив JavaScript.

Возвращаемое значение <boolean> : если значение1 и значение2 считаются равными, возвращается истина , в противном случае - ложь .

Пример 1: Имя файла: index.js




// Node.js syntax to demonstrate the
// util.isDeepStrictEqual() method
// Importing util library
const util = require( 'util' );
// Creating object1
const object1 = {
alfa: "beta" ,
romeo: [10, 20]
};
// Creating object2
const object2 = {
alfa: "beta" ,
romeo: [10, 20]
};
// Returns false
console.log( "1.>" , object1 == object2)
// Returns true
console.log( "2.>" , util
.isDeepStrictEqual(object1, object2))
// Creating a fake date
const wrongDateType = {};
// Comparing wrongDateType with correct date
console.log( "3.>" , util.isDeepStrictEqual(
wrongDateType, Date.prototype));
const anObject = {};
// Prototype is not same
console.log( "4.>" , util.isDeepStrictEqual(
anObject, wrongDateType));
// Returns false
// Creating new date
const newDate = new Date();
// Comparing Date formats
console.log( "5.>" , util.isDeepStrictEqual(
newDate, wrongDateType));
// Returns false
const weakMapOne = new WeakMap();
const weakMapTwo = new WeakMap([[{}, {}]]);
// Comparing two weakMaps
console.log( "6.>" , util.isDeepStrictEqual(
weakMapOne, weakMapTwo));
// Returns true

Запустите файл index.js, используя следующую команду:

 узел index.js

Выход:

 1.> ложь
2.> верно
3.> верно
4.> верно
5.> ложь
6.> верно

Пример 2: Имя файла: index.js




// Node.js syntax to demonstrate the
// util.isDeepStrictEqual() method
// Importing util library
const util = require( 'util' );
// String and integer are compared
// wrong 1 !== '1'.
console.log( "1.>" , util
.isDeepStrictEqual({ a: 1 }, { a: '1' }));
// Returns false
// Comparing Not a Number with Not a Number
console.log( "2.>" , util.isDeepStrictEqual(NaN, NaN));
// Returns true
// Unwrapped numbers are different
console.log( "3.>" , util
.isDeepStrictEqual(Object(1), Object(2)));
// Returns false
// Directly importing isDeepStrictEqual method
const { isDeepStrictEqual } = require( 'util' );
// Unwrapped strings are same
console.log( "4.>" , isDeepStrictEqual(
Object( 'alfa' ), Object( 'alfa' )));
// Returns true
// Comparing both negative values
console.log( "5.>" , isDeepStrictEqual(-0, -0));
// Returns true
// Same Value Comparison with different sign
console.log( "6.>" , isDeepStrictEqual(0, -0));
// Returns false

Запустите файл index.js, используя следующую команду:

 узел index.js

Выход:

 1.> ложь
2.> верно
3.> ложь
4.> верно
5.> верно
6.> ложь

Ссылка: https://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2