Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

El metodo estatico String.raw()  es una funcion de etiqueta (tag) de una plantilla de literales, similar al prefijo r en Python o al prefijo @ en C# para strings literales (Aun asi hay una diferencia: ve la explicacion en este problema). Es usado para obtener el string plano de las plantillas de string (es decir, el original, texto no interpretado).

Sintaxis

String.raw(callSite, ...substitutions)

String.raw`templateString`

Parametros

callSite
Plantilla bien estructurada de llamada de objeto a un sitio, parecido a { raw: ['foo', 'bar', 'baz'] }.
...substitutions
Contiene valores de sustitución.
templateString
Una plantilla string, opcionalmente con sustituciones (${...}).

Valor de regreso

La forma plana del string de una plantilla string proporcionada.

Excepciones

TypeError
Un TypeError es arrojado si el primer argumento no es un objeto bien estructurado.

Descripción

En la mayoria de casos, String.raw() es usado con plantillas string. La primera sintaxis mencionada arriba es raramente usado,  por que el motor de JavaScript hara la llamada por ti con los argumentos apropiados , justamente como otras funciones de etiqueta.

String.raw() es la unica funcion de etiqueta incorporada en las plantillas string; trabaja igual que la funcion de la plantilla por defecto y ejecuta la concatenacion. Incluso puedes reimplementarlo con codigo normal de JavaScript.

Ejemplos

Usando String.raw()

String.raw`Hi\n${2+3}!`;
// 'Hi\n5!', the character after 'Hi'
// is not a newline character,
// '\' and 'n' are two characters.

String.raw`Hi\u000A!`;
// 'Hi\u000A!', same here, this time we will get the
//  \, u, 0, 0, 0, A, 6 characters.
// All kinds of escape characters will be ineffective
// and backslashes will be present in the output string.
// You can confirm this by checking the .length property
// of the string.

let name = 'Bob';
String.raw`Hi\n${name}!`;
// 'Hi\nBob!', substitutions are processed.

// Normally you would not call String.raw() as a function,
// but to simulate `t${0}e${1}s${2}t` you can do:
String.raw({ raw: 'test' }, 0, 1, 2); // 't0e1s2t'
// Note that 'test', a string, is an array-like object
// The following is equivalent to
// `foo${2 + 3}bar${'Java' + 'Script'}baz`
String.raw({
  raw: ['foo', 'bar', 'baz'] 
}, 2 + 3, 'Java' + 'Script'); // 'foo5barJavaScriptbaz'

Especificaciónes

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'String.raw' en esta especificación.
Standard Definicion inicial.
ECMAScript Latest Draft (ECMA-262)
La definición de 'String.raw' en esta especificación.
Living Standard  

Compatibilidad de navegador

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico41 Si34 No No10
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidIE mobileOpera AndroidiOS Safari
Soporte básico No41 Si34 No No10

Tambien ver

Etiquetas y colaboradores del documento

 Colaboradores en esta página: RaulRueda
 Última actualización por: RaulRueda,