2014-03-14 5 views
47

Hi Ich habe ein Problem, wenn mein Framework jshint verwendet, um meinen javascript Code zu validieren. Ich habe absichtlich switch-case ohne eine break-Anweisung verwendet, aber dieser Teil des Codes wird als Fehler erfasst, wenn jshint prüft. Mein Code ist etwas wie unten.jshint wirft eine "Expected a 'break" -Anweisung vor' case '"

switch (<no>){ 
    case 1: 
     // does something 
    case 2: 
     //does something more 
    default: 
     // does something even more 
    } 

Error from 'jshint' is like Line 203 character 41: Expected a 'break' statement before 'case'. Irgendwelche Gedanken darüber, wie es zu vermeiden? Oder ist es eine schlechte Praxis, in diesem Szenario überhaupt Switch-Fälle zu verwenden?

+0

Was die reale Welt Fall ist? Warum brauchst du nicht "Pause"? – elclanrs

+0

Wenn der Fall 2 trifft, brauche ich Fall 2 und alle unten sollten ausgeführt werden. Es gilt für alle Fälle. Etwas von dieser Art. Meine Logik funktioniert gut, aber die Validierung schlägt fehl. – sakthisundar

+8

Ich habe oft Schalter, bei denen ich in jedem Fall nicht wirklich "Pause" brauche, das ist nicht allzu ungewöhnlich. –

Antwort

101

Copy & Paste from the documentation:

Schalter Aussagen

standardmäßig JSHint warnt, wenn Sie Pause weglassen oder return-Anweisungen in switch-Anweisungen:

[...]

Wenn Sie wissen wirklich, was Sie tun, können Sie JSHint sagen, dass Sie beabsichtigten, den Fallblock durchzufallen ing ein /* falls through */ Kommentar

So in Ihrem Fall:

switch (<no>) { 
    case 1: 
    // does something 
    /* falls through */ 
    case 2: 
    //does something more 
    /* falls through */ 
    default: 
    // does something even more 
} 
+18

Danke, dass du ihm einfach die Antwort gegeben hast ohne das ganze hin und her zu grillen, der Typ, warum er das machen will :) –

+7

+1. Standardmäßig unterstützen Switch-Anweisungen Breaks oder keine Breaks, je nachdem, welches Verhalten Sie benötigen. Sonst, warum würden Sprachen verlangen, dass Sie überhaupt eine "Pause" hinzufügen –