Ternärer Operator zeigt einen Fehler in JSHint an - Erwartete eine Zuweisung oder einen Funktionsaufruf und sah stattdessen einen Ausdruck

8

Ich habe einen ternären Operator dir === 'next' ? ++$currentSlide : --$currentSlide; in meinem JS verwendet, um eine ganze Zahl zu dekrementieren. Wenn ich mein Skript in grunt JSHint ausführe, erhelle diese Zeile als Expected an assignment or function call and instead saw an expression.

Kann mir jemand sagen, wo ich falsch liege? Sollte ich meinen Zustand anders einstellen etc?

    
styler 05.08.2013, 13:55
quelle

4 Antworten

16

Sie verwenden den bedingten Operator als if -Anweisung, deshalb erhalten Sie diese Notiz. Die eigentliche Arbeit im Code wird als Nebeneffekt des Ausdrucks ausgeführt, und das Ergebnis des Ausdrucks wird ignoriert.

Als eine echte if Aussage wäre es:

%Vor%

Sie können den bedingten Operator verwenden, wenn Sie ihn als tatsächlichen Ausdruck verwenden:

%Vor%     
Guffa 05.08.2013, 14:00
quelle
7

Im Allgemeinen zum Deaktivieren der Funktion "Erwarte eine Zuweisung oder einen Funktionsaufruf und stattdessen einen Ausdruck". Warnung, Sie können / * jshint expr: true * /

    
learner_19 03.11.2013 00:07
quelle
3

Geht es, wenn Sie es so schreiben?

%Vor%

Linters und Hinters mögen normalerweise nicht in / dekrementieren, weil sie für Bugs empfindlich sind.

    
Halcyon 05.08.2013 13:57
quelle
0

Versuchen Sie diese Syntax:

%Vor%     
Nadh 05.08.2013 13:58
quelle

Tags und Links