Новая функция javascript console.log с «сырым»?

Я столкнулся с этим примером и был полностью потерян...

const test = (hey) => console.log(hey);

console.log(test `wtf`); 

Во-первых, все это верно, в console.log это выглядит так:

["wtf", raw: Array[1]]

Вроде бы функция выполнялась и с дополнительными raw? может кто-нибудь объяснить?


person Bill    schedule 26.10.2016    source источник
comment
developer.mozilla.org/tr/docs/Web/ JavaScript/Reference/ Я полагаю, это шаблонизатор строк   -  person Kamuran Sönecek    schedule 26.10.2016
comment
Строки шаблона с тегами: developer.mozilla.org/en- США/документы/Интернет/JavaScript/Справочник/   -  person deceze♦    schedule 26.10.2016
comment
@anant Вы подвергли цензуре т…?   -  person deceze♦    schedule 26.10.2016


Ответы (2)


Это просто литерал шаблона с тегами. Выглядит красиво, но ничего особенного в этом нет. Обратите внимание, что они являются частью ES6/ES2015, поэтому вам нужно будет их транслировать, если вы планируете поддерживать старые браузеры.

Литералы шаблонов — это строковые литералы, допускающие встроенные выражения. С ними можно использовать многострочные строки и функции интерполяции строк. В предыдущих редакциях спецификации ES2015/ES6 они назывались «строками шаблона».

person Mulan    schedule 26.10.2016

кредит @karmuran и @deceze

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_template_literals

Необработанные строки

Специальное необработанное свойство, доступное в первом аргументе функции помеченных литералов шаблона, позволяет вам получить доступ к необработанным строкам по мере их ввода.

function tag(strings, ...values) {
  console.log(strings.raw[0]); 
  // "string text line 1 \n string text line 2"
}

tag`string text line 1 \n string text line 2`;
person Bill    schedule 26.10.2016