當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js util.isDeepStrictEqual()用法及代碼示例


“util”模塊提供用於調試目的的‘utility’函數。要訪問這些函數,我們需要調用它們(通過“ require(‘util’)”)。

util.isDeepStrictEqual()(在v9.0.0中添加)方法是util模塊的內置應用程序編程接口,這是一個導出的類型函數,用於測試實際值(value1)和預期值(value2)之間的兩個值的深度相等性。參數。深度相等是一種通過一些規則來遞歸評估子對象的可枚舉“own”屬性的方法。

用法:

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

參數:此函數接受上述和以下描述的兩個參數:

  • 值1<任何>任何變量,類,函數,對象或JavaScript原語。



  • 值2<任何>任何變量,類,函數,對象或JavaScript原語。

返回值 <布爾值>如果將value1和value2視為相等,則返回true,否則返回false。

範例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文件:

node index.js

輸出:

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

範例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文件:

node index.js

輸出:

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

參考: https://nodejs.org/api/util.html#util_util_isdeepstrictequal_val1_val2




相關用法


注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js util.isDeepStrictEqual() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。