SyntaxError: Oktale Escape-Sequenzen können nicht in nicht-getaggten Vorlagenliteralen oder im Strict Mode-Code verwendet werden
Die JavaScript-Ausnahme "Oktale Escape-Sequenzen können nicht in nicht-getaggten Vorlagenliteralen oder im Strict Mode-Code verwendet werden" tritt auf, wenn oktale Escape-Sequenzen in Strict Mode Zeichenfolgenliteralen oder nicht-getaggten Vorlagenliteralen verwendet werden.
Nachricht
SyntaxError: Octal escape sequences are not allowed in strict mode. (V8-based) SyntaxError: \8 and \9 are not allowed in strict mode. (V8-based) SyntaxError: Octal escape sequences are not allowed in template strings. (V8-based) SyntaxError: \8 and \9 are not allowed in template strings. (V8-based) SyntaxError: octal escape sequences can't be used in untagged template literals or in strict mode code (Firefox) SyntaxError: the escapes \8 and \9 can't be used in untagged template literals or in strict mode code (Firefox) SyntaxError: The only valid numeric escape in strict mode is '\0' (Safari)
Fehlertyp
Was ist schiefgelaufen?
Die Zeichenfolgen-Escape-Sequenz der Form \
, gefolgt von einer beliebigen Anzahl von Ziffern, außer einer einzelnen 0
, ist veraltet. Wenn Sie ein Zeichen durch seinen Codepunkt-Wert darstellen möchten, sollten Sie stattdessen die \x
oder \u
Escape-Sequenz verwenden, wie z.B. \x01
oder \u0001
statt \1
.
Nicht-getaggte Vorlagenliterale dürfen niemals oktale Escape-Sequenzen enthalten, weder im Strict Mode noch sonst. Getaggte Vorlagenliterale können jedoch jede Form von Escape-Sequenzen enthalten, und dies führt dazu, dass das Vorlagen-Array, das von der Tag-Funktion empfangen wird, undefined
enthält.
Beispiele
Oktale Escape-Sequenzen
"use strict";
"\251";
// SyntaxError: octal escape sequences can't be used in untagged template literals or in strict mode code
Gültige oktale Zahlen
Für oktale Escape-Sequenzen können Sie stattdessen hexadezimale Escape-Sequenzen verwenden:
"\xA9";
Wenn Sie einen Quelltext buchstäblich darstellen möchten, ohne irgendeine Escape-Sequenz zu interpretieren, verwenden Sie String.raw
:
String.raw`\251`; // A string containing four characters