Was sind die Gefahren, wenn man eine Zeile langen Codes in einer engen Klammer bricht?Wann ist es gefährlich, Zeilenumbrüche nach einer geschlossenen Klammer in Javascript zu machen?
Wann könnte ein Semikolon automatisch von Javascript eingefügt werden (vermutlich ist das die Gefahr, oder?).
Warum wird ein
)
als Unterbrecher verwendet, der von JSLint "verpönt" wird?
In Javascript Ich sehe manchmal eine lange Codezeile in einem )
wie diese aufgebrochen (example):
function()
{
oder so (example):
object.methodOne()
.methodTwo();
Aber beim Lesen der line break expectations for jsLint, heißt es:
, ; : { } ([ = < > ? ! + - */% ~^| &
== != <= >= += -= *= /= %= ^= |= &= << >> || &&
=== !== <<= >>= >>> >>>=
:Als weitere Verteidigung gegen das Semikolon Insertionsmechanismus erwartet JSLint lange Aussagen nach einem dieser Satzzeichen oder Operatoren nur gebrochen werden
JSLint erwartet keine lange Anweisung, die nach einem Bezeichner, einer Zeichenfolge, einer Zahl, einem Closer oder einem Suffixoperator unterbrochen wurde:
.) ] ++ --
Also wird die enge Klammer als ein Zeilentrenner ausgesondert, den JSLint "nicht erwartet".
Ich würde es vorziehen
function() {
zu verwenden, da ich es besser lesbar zu finden, und ich habe es bereits in anderen Sprachen verwenden, aber zur Zeit verwende ich:
function() {
Kann ich sicher die
)
verwenden Lange Schlangen aufbrechen?
Beachten Sie, dass jslint ist absichtlich defensiver als die tatsächliche JS-Syntax, und es wird sich über Dinge beschweren, die gültig sind Javascript (zum Beispiel jslint berücksichtigt '++' und '-' schlecht). –
@Daniel - Ich verstehe das, aber ich nehme an, dass es immer noch Gründe für die Regeln gibt ... Ich bin mir nur nicht sicher, was sie im Fall der engen Paren sein könnten. –
Obwohl die Funktionsdefinition zu 100% sicher ist, gibt es andere Fälle (siehe die Antwort von user166390), bei denen ein ')' am Ende Probleme verursachen könnte. – casablanca