Was passiert mit JavaScript-Literalen (Strings, Zahlen), die nicht an eine Variable gebunden sind (auch bekannt)?
%Vor%Der Browser scheint sie zu ignorieren, aber ich konnte in der Spezifikation keine bestimmte Regel finden
Dies sind "Ausdrucksanweisungen". Solche Ausdrücke werden ausgewertet, aber da sie nicht zugewiesen sind, wird ihr Wert nicht gespeichert. JavaScript-Engines erkennen wahrscheinlich diejenigen, die keine Nebenwirkungen haben, und beseitigen sie, als wären sie nie da.
Aber immerhin hat mindestens einer davon einen Effekt:
%Vor%Dies hat die Bedeutung einer JavaScript-Anweisung
>Aus der EcmaScript-Spezifikation :
A Use Strict Directive ist ein ExpressionStatement in einem Direktivprolog, dessen StringLiteral entweder die exakte Codeeinheit sequences
"use strict"
oder'use strict'
ist.
Beachten Sie auch, dass andere Zeichenfolgenliterale können eine besondere Bedeutung haben, wenn sie im direktiven Prolog verwendet werden:
Implementierungen können implementierungsspezifische Bedeutungen für ExpressionStatement -Produktionen definieren, die keine Use Strict Directive sind und die in einem Direktive-Prolog vorkommen.
Es ist nur eine Ausdruckserklärung , die bewertet - ohne Nebenwirkungen - auf einen Wert, der verworfen wird.
Sie können sehen, dass es das Ergebnis der Anweisung ist, wenn Sie dies in eval
oder einer REPL versuchen.
Die Werte werden im Speicher gespeichert, bis sie vom Garbage Collector bereinigt werden, da nichts auf diesen Ort im Speicher zeigt.
Da der Wert nicht gespeichert wird (d. h., es wird kein Platz reserviert, um Ihr Literal zu halten), wird er mehr oder weniger vom Browser ignoriert und auch kein Overhead für den Garbage Collector. Zumindest die Funktion Ihres Codes ändert sich nicht. Ihre Javascript-Datei wird natürlich ein kleines bisschen größer sein, weil sie mehr (nutzlosen) Text enthält.
Es scheint, dass sie als Variablen behandelt werden, die in nichts eingefügt werden. Es behandelt sie, als ob sie sowieso nicht existieren. Probieren Sie es aus:
Wie Sie sehen, passiert nichts, wenn die leere Zeichenfolge dort ist. Das ist eine interessante Frage, daher wäre ich sehr daran interessiert, andere Ergebnisse zu hören.
Tags und Links javascript