javascript console.log новая функция с "сырой"?
Я столкнулся с этим примером и был полностью потерян...
const test = (hey) => console.log(hey);
console.log(test `wtf`);
Во-первых, все это действительно, в console.log, кажется,
["wtf", raw: Array[1]]
Это как функция была выполнена и с дополнительным raw
? Может кто-нибудь объяснить, пожалуйста?
2 ответа
Это просто помеченный шаблонный литерал. Это выглядит необычно, но в этом нет ничего особенного. Обратите внимание, что они являются частью ES6/ES2015, поэтому вам потребуется их перенести, если вы планируете поддерживать старые браузеры.
Шаблонные литералы являются строковыми литералами, допускающими встроенные выражения. Вы можете использовать многострочные строки и функции интерполяции строк. Они назывались "шаблонными строками" в предыдущих выпусках спецификации ES2015 / ES6.
Кредит @karmuran и @deceze
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/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`;