Node.js Метод util.isDeepStrictEqual ()
Модуль «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