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
相關用法
- Node.js console.timeLog()用法及代碼示例
- Node.js GM channel()用法及代碼示例
- Node.js GM drawPolygon()用法及代碼示例
- Node.js GM contrast()用法及代碼示例
- Node.js GM scale()用法及代碼示例
- Node.js GM sepia()用法及代碼示例
- Node.js GM lower()用法及代碼示例
- Node.js GM chop()用法及代碼示例
- Node.js GM border()用法及代碼示例
- Node.js GM drawRectangle()用法及代碼示例
- Node.js GM enhance()用法及代碼示例
- Node.js GM equalize()用法及代碼示例
- Node.js GM paint()用法及代碼示例
- Node.js GM bordercolor()用法及代碼示例
- Node.js GM flop()用法及代碼示例
注:本文由純淨天空篩選整理自vikas_g大神的英文原創作品 Node.js util.formatWithOptions() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。