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


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


util.formatWithOptions()(在v10.0.0中添加)方法是util模塊的內置應用程序編程接口,類似於printf格式字符串,並使用第一個參數返回格式化的字符串。它在某種程度上與util.format()方法相同,但該方法的例外是它帶有一個額外的參數,即用來指定傳遞給util.inspect()方法的選項的inspectOptions。

格式化的字符串包含零個或多個格式說明符,其中轉換並替換了相應的參數值。它用作調試工具是一種同步方法。

用法:

util.formatWithOptions(inspectOptions, format[, ...args])

要使用此函數,我們必須導入util模塊:

const util=require("util");   

參數:此方法接受上述和以下所述的三個參數:



  • inspectOptions <object>:它接受函數,對象,回調,JSON格式數據等。
  • format<string>:它由<string>類型的說明符組成,類似於printf格式的字符串。
  • args<string>:接受<string>類型列表或參數數組。

返回值<string>:返回<string>類型的格式化字符串。

範例1: 文件名:index.js

// Node.js to demonstrate the  
// util.formatWithOptions() method  
  
// Import the util module  
const util = require('util');  
  
function fun1() {  
  
    // Returns:See object:{alfa:42} 
    var val0 = util.formatWithOptions( 
        { depth:0, colors:true },  
        'See object %O', { alfa:42 }); 
      
    // Returns:'abc:%s'  
    var val1 = util.formatWithOptions( 
        { colors:true, showProxy:true },  
        '%s:%s:%s', 'abc');  
  
    // Returns:'abc:def ghi'  
    var val2 = util.formatWithOptions( 
        { showHidden:true, colors:true },  
        '%s:%s', 'abc', 'def', 'ghi', 'jkl');  
  
    // Returns:'10 20 30'  
    var val3 = util.formatWithOptions( 
        { breakLength:80, colors:true },  
        10, 20, 30);  
  
    // Returns:'%:567' 
    var val5 = util.formatWithOptions( 
        { compact:true }, '%%:%s', 567);  
       
    // Printing all values 
    console.log(val0, '\n', val1, '\n',  
        val2, '\n', val3, '\n', val5);  
}  
  
// Function call  
fun1(); 

輸出:

See object { alfa:42 } 
abc:%s:%s 
abc:def ghi jkl        
10 20 30 
%:567

範例2: 文件名:index.js

// Node.js program to demonstrate the  
// util.formatWithOptions() method  
  
// Import the util module  
const util = require('util'); 
  
// Passing multiple values and  
// -0 on string specifier  
console.log("1 => ", util.formatWithOptions( 
    { colors:true }, 
    '%%:%s', 'alfa', 'beta', -0)); 
  
// Passing multiple values  
console.log("2 => ", util.formatWithOptions( 
    { colors:true }, 
    '%%', 'alfa', 'beta', 'gamma')); 
  
// Passing bigInt to string specifier  
console.log("3 => ", util.formatWithOptions( 
    { colors:true }, '%s', 
    'alfa', 94321321321223372036854775807)); 
  
// Creating and passing Object along  
// with null prototype and a variable  
console.log("4 => ", util.formatWithOptions( 
    { 
        showHidden:false, depth:0, 
        colors:true
    }, '%s', 'alfa', Object.create(null, 
    { [Symbol.toStringTag]:{ value:'beta' } }))); 
  
// Passing string to Number specifier  
console.log("5 => ", util.formatWithOptions( 
    { colors:true }, '%d', 'alfa', 
    94303685)); 
  
// Passing Symbol and Number to parseInt specifier  
console.log("6 => ", util.formatWithOptions( 
    { showHidden:false, colors:true }, 
    '%i', '2020 year 2021, ', 'He was 40, ',  
    '10.33, ', '10, ', 10)); 
  
// Passing string and Numbers to  
// parseFloat specifier  
console.log("7 => ", util.formatWithOptions( 
    { colors:true }, '%f', 
    '94321321321.564000 year 6546',  
    'alfa', 78987965465464)); 
  
// Passing JSON string and Nunber 
// to JSON specifier  
console.log("8 => ", util.formatWithOptions( 
    { depth:0, colors:true }, '%j', 
    '{ "name":"Chotu Mishra", "age":23, "city":"Kanpur" }',  
    'alfa', 78987965465464)); 
  
// Passing class, string, and Number  
// to object specifier  
console.log("9 => ", util.formatWithOptions( 
    { colors:true }, '%o', 
    class Bar { }, 'alfa', 78987965465464)); 
  
// Passing class, string, and Number 
// to Object specifier  
console.log("10 => ", util.formatWithOptions( 
    { depth:0, colors:true }, '%o:%d', 
    class Foo { get [Symbol.toStringTag]()  
        { return 'alfa'; } }, 'alfa', 
    78987965465464));

使用以下命令運行index.js文件:

node index.js

輸出:

1 =>  %:alfa beta -0
2 =>  % alfa beta gamma
3 =>  alfa 9.432132132122338e+28
4 =>  alfa [Object:null prototype] [beta] {}
5 =>  NaN 94303685
6 =>  2020 He was 40,  10.33,  10,  10
7 =>  94321321321.564 alfa 78987965465464
8 =>  "{ \"name\":\"Chotu Mishra\", \"age\":23, 
      \"city\":\"Kanpur\" }" alfa 78987965465464
9 =>  [Function:Bar] {
  [length]:0,
  [prototype]:Bar { [constructor]:[Circular] },
  [name]:'Bar'
} alfa 78987965465464
10 =>  [Function:Foo] {
  [length]:0,
  [prototype]:Foo {
    [constructor]:[Circular],
    [Symbol(Symbol.toStringTag)]:[Getter]
  },
  [name]:'Foo'
}:NaN 78987965465464

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




相關用法


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