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


Node.js util.format(format[, ...args])用法及代碼示例


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

曆史
版本變化
v12.11.0

%c 說明符現在被忽略。

v12.0.0

format 參數現在僅在它實際上包含格式說明符時才被采用。

v12.0.0

如果 format 參數不是格式字符串,則輸出字符串的格式不再依賴於第一個參數的類型。當第一個參數不是字符串時,此更改會從正在輸出的字符串中刪除先前存在的引號。

v11.4.0

%d%f%i 說明符現在正確支持符號。

v11.4.0

%o 說明符的 depth 再次具有默認深度 4。

v11.0.0

%o 說明符的 depth 選項現在將回退到默認深度。

v10.12.0

%d%i 說明符現在支持 BigInt。

v8.4.0

現在支持 %o%O 說明符。

v0.5.3

添加於:v0.5.3


參數
  • format <string> 類似於 printf 的格式字符串。

util.format() 方法返回一個格式化字符串,使用第一個參數作為類似 printf 的格式字符串,它可以包含零個或多個格式說明符。每個說明符都被相應參數的轉換值替換。支持的說明符是:

  • %sString 將用於轉換除 BigIntObject-0 之外的所有值。 BigInt 值將用 n 表示,沒有用戶定義的 toString 函數的對象使用帶有選項 { depth: 0, colors: false, compact: 3 }util.inspect() 檢查。
  • %dNumber 將用於轉換除 BigIntSymbol 之外的所有值。
  • %iparseInt(value, 10) 用於除 BigIntSymbol 之外的所有值。
  • %fparseFloat(value) 用於除 Symbol 之外的所有值。
  • %j:JSON。如果參數包含循環引用,則替換為字符串 '[Circular]'
  • %oObject。具有通用 JavaScript 對象格式的對象的字符串表示形式。類似於帶有選項 { showHidden: true, showProxy: true }util.inspect() 。這將顯示完整的對象,包括不可枚舉的屬性和代理。
  • %OObject。具有通用 JavaScript 對象格式的對象的字符串表示形式。類似於沒有選項的util.inspect()。這將顯示不包括不可枚舉屬性和代理的完整對象。
  • %cCSS。此說明符被忽略,並將跳過任何傳入的 CSS。
  • %%:單百分號('%')。這不會消耗一個論點。
  • 返回: <string> 格式化字符串

如果說明符沒有對應的參數,則不會被替換:

util.format('%s:%s', 'foo');
// Returns: 'foo:%s'

如果它們的類型不是 string ,則不屬於格式字符串的值將使用 util.inspect() 進行格式化。

如果傳遞給 util.format() 方法的參數多於說明符的數量,則額外的參數將連接到返回的字符串,以空格分隔:

util.format('%s:%s', 'foo', 'bar', 'baz');
// Returns: 'foo:bar baz'

如果第一個參數不包含有效的格式說明符,util.format() 返回一個字符串,該字符串是由空格分隔的所有參數的串聯:

util.format(1, 2, 3);
// Returns: '1 2 3'

如果僅將一個參數傳遞給 util.format() ,則將按原樣返回,不帶任何格式:

util.format('%% %s');
// Returns: '%% %s'

util.format() 是一種同步方法,旨在用作調試工具。某些輸入值可能會產生很大的性能開銷,從而阻塞事件循環。請謹慎使用此函數,切勿在熱代碼路徑中使用。

相關用法


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