Método Node.js util.isDeepStrictEqual()

El módulo «util» proporciona funciones de «utilidad» que se utilizan con fines de depuración. Para acceder a esas funciones necesitamos llamarlas (mediante ‘ require(‘util’) ‘).

El método util.isDeepStrictEqual() (agregado en v9.0.0) es una interfaz de programación de aplicaciones incorporada del módulo util que es una función de tipo exportado que prueba la profunda igualdad de dos valores, es decir, entre el real ( value1 ) y el esperado ( valor2 ) parámetros. La igualdad profunda es un método que ayuda a evaluar las propiedades «propias» enumerables de los objetos secundarios de forma recursiva mediante unas pocas reglas. 

Sintaxis:

const util = require('util');
util.isDeepStrictEqual(val1, val2);

Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • val1 <any> : cualquier variable, clase, función, objeto o primitiva de JavaScript.

  • val2 <cualquiera> : cualquier variable, clase, función, objeto o primitiva de JavaScript.

Valor de retorno <booleano> : si valor1 y valor2 se consideran iguales, devuelve verdadero ; de lo contrario, devuelve falso .

Ejemplo 1: Nombre de archivo: 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

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

1.> false
2.> true
3.> true
4.> true
5.> false
6.> true

Ejemplo 2: Nombre de archivo: 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

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

1.> false
2.> true
3.> false
4.> true
5.> true
6.> false

Referencia: https://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2

Publicación traducida automáticamente

Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *