2017-12-20 255 views

Odpowiedz

4

Pierwsze dwa backticks jest pusty łańcuch podczas gdy następne dwa będą działać jako tagged template literals, które wywołają funkcję przed nią. Ponieważ "" (pusty ciąg) nie jest funkcją do sprawdzenia, powoduje błąd.

Backticks calling a function

Aby backticks gniazdo w szablonie dosłownym, uciec, poprzedzając je ukośnikiem

console.log(`\`\``); 
3

To dlatego, że masz dwa literały szablonów bezpośrednio obok siebie bez jakiegokolwiek łączenia wyraz. Analizator składni rozpoznaje to jako oznakowane wywołanie funkcji, takie jak String.raw`stuff here`. Oceniany jest pierwszy kod ``, który daje "", a następnie silnik JavaScript próbuje wywołać ten pusty ciąg jako funkcję, przekazując przetworzony tekst literału. Ponieważ pusty ciąg nie jest funkcją, pojawia się błąd.

Otrzymujesz ten sam błąd bardziej bezpośrednio przy użyciu ""``. :-)