Método Node.js util.format()

El método util.format() (agregado en v0.5.3) es una interfaz de programación de aplicaciones incorporada del módulo util que es como una string de formato printf y devuelve una string formateada usando el primer argumento. La string con formato contiene cero o más especificadores de formato en los que el valor del argumento correspondiente se convierte y reemplaza. Se utiliza como una herramienta de depuración, es un método síncrono, por lo tanto, puede tener una sobrecarga de rendimiento significativa que podría bloquear el bucle de eventos. Se recomienda no utilizar esta función en una ruta de código activo.

Sintaxis: 

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

Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:

            format: consiste en especificadores de tipo <string> , que es como una string de formato printf .

               args: Es la lista de argumentos de tipo <string> .

Los especificadores admitidos son:

  • %%: Reemplaza el especificador con un solo signo de porcentaje ( ‘%%’ / ‘%’ ) y no consume ningún argumento, incluso si se proporciona.
  • %s ( String ) : Convierte todos los valores de acuerdo con el formato dado, excepto Object , BigInt y -0 . Los objetos que no tienen una función toString definida por el usuario se inspeccionan mediante util.inspect() y los valores BigInt se representan con n .
  • %c ( CSS ) : si se pasa algún CSS , se omitirá. Por lo general, este especificador se ignora.
  • %d ( Número ) : Convierte todos los valores de acuerdo con el formato dado excepto Símbolo y BigInt .
  • %i ( parseInt() ) : Analiza una <string> y devuelve un entero, se usa para todos los valores excepto BigInt y Symbol .
  • %f ( parseFloat() ) : Analiza una string y devuelve un número de punto flotante, se usa para todos los valores excepto Símbolos .
  • %j ( JSON ) : Sin análisis ni traducciones complicadas, si hay referencias circulares en el argumento, se reemplaza con la string ‘[Circular]’.
  • %o ( Objeto ) : es una representación de string de un objeto con formato de objeto JavaScript genérico. Similar a util.inspect() . Muestra el objeto completo junto con propiedades no enumerables y proxies.
  • %O ( Object ) : Es similar a ‘%o’ pero sin opciones, no incluye proxies y propiedades no enumerables .

Valor devuelto: Devuelve la string formateada de tipo <string>.

Ejemplo 1:
Nombre de archivo: index.js 

javascript

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

Ejecute el archivo index.js con el siguiente comando: 

node index.js

Producción:

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

Ejemplo 2:
Nombre de archivo: index.js 

javascript

// 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()));

Ejecute el archivo index.js con el siguiente comando: 

node index.js

Producción:

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 {}

Condiciones:

  • Si no se pasa ningún argumento correspondiente al especificador, no se reemplaza.
  • Si se pasan más argumentos que el número de especificadores, los argumentos adicionales se concatenarán a la string devuelta.
  • Si los ‘valores’ no pertenecen a la string de formato y su tipo no es una string, se les da formato usando el método util.inspect() .
  • Si el primer argumento no tiene un especificador de formato válido, util.format() devuelve argumentos concatenados.

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

 

Publicación traducida automáticamente

Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *