Są to "wyrażenia wyrażeń". Wyrażenia takie są oceniane, ale ponieważ nie są przypisane, ich wartość nie jest przechowywana. Silniki JavaScript mogą wykryć te, które nie mają skutków ubocznych, i wyeliminować je tak, jakby nigdy nie istniały.
Ale jeszcze co najmniej jeden z nich ma wpływ:
"use strict";
To ma sens JavaScript directive
Z EcmaScript specification:
A Za pomocą Strict dyrektywa jest ExpressionStatement w Prologu dyrektywy, którego StringLiteral jest ei dokładne sekwencje jednostek kodu "use strict"
lub 'use strict'
.
Należy również pamiętać, że inne literały łańcuchowe może mają szczególne znaczenie, gdy używane w dyrektywie prologu:
implementacje mogą definiować specyficzne znaczenie wdrożeniowe dla ExpressionStatement produkcje, które nie stanowią use strict dyrektywa i które występują w Prologu dyrektywy.
Dla odniesienia: [Wyrażenie wypowiedzi] (http://www.ecma-international.org/ecma-262/6.0/# sec-expression-statement) –
Nie podążam za ES3.1, ale muszę dodać tryb ścisły (jest wykrywany przez literał String wewnątrz instrukcji wyrażenia przy okazji) – Hydro
Jest prawdopodobne, że silniki JS w świecie rzeczywistym zoptymalizują poza "nieużywanymi" wyrażeniami, które nie mają skutków ubocznych. – joews