Open In App

Node.js util.format() Method

The util.format() (Added in v0.5.3) method is an inbuilt application programming interface of the util module which is like printf format string and returns a formatted string using the first argument. The formatted string contains zero or more format specifiers in which the corresponding argument value is converted and replaced. It is used as a debugging tool in a synchronous method hence, it can have a significant performance overhead that could block the event loop. It is recommended not to use this function in a hot code path.

Syntax: 



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

Parameters: This method accepts two parameters as mentioned above and described below:

Supported specifiers are:



Return Value: It returns the formatted string of <string> type.

Example 1: In this example, we will see the use of the util.format().

index.js 




// Node.js to demonstrate the
// util.format() method
 
// Import the util module
const util = require('util');
 
function fun1() {
    let val1 = util.format('%s:%s:%s', 'abc');
    // Returns: 'foo:%s'
 
    let val2 = util.format('%s:%s',
        'abc', 'def', 'ghi', 'jkl');
    // Returns: 'foo:bar baz'
 
    let val3 = util.format(10, 20, 30);
    // Returns: '1 2 3'
 
    let val4 = util.format('%% : %s : %d');
    // Returns: '%% %s'
 
    let val5 = util.format('%% : %s', 567);
    // Returns: '% : 567'
 
    console.log(val1, '\n', val2, '\n',
        val3, '\n', val4, '\n', val5);
}
 
// Function call
fun1();

Run the index.js file using the following command: 

node index.js

Output:

abc:
:abc:def ghi jkl
10 20 30
%% : %s : %d
% : 567

Example 2: In this example, we will see the use of the util.format().

index.js 




// Node.js program to demonstrate
// the util.format() method
 
// Import the util module
const util = require('util');
 
// Passing multiple values and
// -0 on string specifier
console.log("1.>", util.format(
    '%%: %s', 'abc', 'def', -0));
 
// Passing multiple values
console.log("2.>", util.format(
    '%%', 'abc', 'def', 'ghi'));
 
// Passing bigInt to string specifier
console.log("3.>", util.format('%s',
    'abc', 94321321321223372036854775807));
 
// Creating and passing Object along
// with null prototype and a variable
console.log("4.>", util.format('%s',
    'abc', Object.create(null,
        {
            [Symbol.toStringTag]:
            { value: 'def' }
        })));
 
// Passing string to Number specifier
console.log("5.>", util.format('%d',
    'abc', 94303685));
 
// Passing Symbol and Number to
// parseInt specifier
console.log("6.>", util.format(
    '%i', '2020 year 2021, ', 'He was 40,'
    , '10.33, ', '10, ', 10));
 
// Passing string and Numbers
// to parseFloat specifier
console.log("7.>", util.format('%f',
    '94321321321.564000 year 6546',
    'abc', 943036854775807));
 
// Passing JSON string and Number
// to JSON specifier
console.log("8.>", util.format('%j',
    '{ "name":"John", "age":31, "city":"New York" }',
    'abc', 943036854775807));
 
// Passing class, string, and Number
// to object specifier
console.log("9.>", util.format('%o',
    class Bar { }, 'abc', 943036854775807));
 
// Passing class, string, and Number
// to Object specifier
console.log("10.>", util.format('%o:%d',
    class Foo {
        get [Symbol.toStringTag]() { return 'abc'; }
    },
    'abc',
    943036854775807
));
 
// Random class
class randomClass { }
 
// Inspecting random class
console.log("11.>",
    util.inspect(new randomClass()));

Run the index.js file using the following command: 

node index.js

Output:

1.> %: abc def -0
2.> % abc def ghi
3.> abc 9.432132132122338e+28
4.> abc [Object: null prototype] [def] {}
5.> NaN 94303685
6.> 2020 He was 40, 10.33, 10, 10
7.> 94321321321.564 abc 943036854775807
8.> "{ \"name\":\"John\", \"age\":31, 
    \"city\":\"New York\" }" abc 943036854775807
9.> <ref *1> [Function: Bar] {
    [length]: 0,
    [prototype]: Bar { [constructor]: [Circular *1] },
    [name]: 'Bar'
   } abc 943036854775807
10.> <ref *1> [Function: Foo] {
    [length]: 0,
    [prototype]: Foo {
    [constructor]: [Circular *1],
    [Symbol(Symbol.toStringTag)]: [Getter]
    },
    [name]: 'Foo'
   }:NaN 943036854775807
11.> randomClass {}

Conditions:

Reference: https://nodejs.org/api/util.html#util_util_format_format_args


Article Tags :