2016-04-14 11 views
2

Ich habe gerade einige der neuen Funktionen von ES6 gelesen und ich mag viele der neuen Ergänzungen, aber ich bin verwirrt, warum Vorlagenliterale sowohl $ als auch {} benötigen, um die Variable zu bezeichnen? Es scheint übertrieben zu sein, dass es den Zweck von ihnen anfängt (um Platz zu sparen und die Lesbarkeit zu verbessern). Meine einzige Vermutung ist, dass sie sich von PHP inspirieren ließen und anders sein wollten, um die beiden zu unterscheiden. Aber mit den hinzugefügten geschweiften Klammern sparen Sie fast nicht mehr Platz, als wenn Sie nur einen String auf die alte Art konstruieren!

+0

Weil '$ a + b' nicht funktioniert. _ "um die Variable zu bezeichnen" _ Ausdrücke, keine Variablen. _ "Sie sparen am Ende fast keinen Platz mehr" _ Platz sparen ist nicht der Punkt. – zeroflagL

+0

@zeroflagL Ich denke, sie meinen obwohl warum nicht einfach '{a + b}' sehen, da das Literal bereits durch Backticks – CodingIntrigue

+0

@RGraham Good Punkt bezeichnet wird. Obwohl literal '{}' könnte häufiger als literal '$ {}' verwendet werden. – zeroflagL

Antwort

2

Wie es in den initial proposal bemerkt hat:

Da wir Syntax Wahl sind die Lernkurve zu reduzieren, haben wir uns für ${...} da es verwendet wird, beliebige eingebettete Ausdrücke in PHP und JQuery-Vorlagen zu ermöglichen. Wir haben auch die abgekürzte Form ($ident) mit Bash, Perl, PHP, Ruby, etc. kompatibel

Wir entschieden uns gegen sprintf Stil Formatierung, da, obwohl weithin verstanden, erlaubt es nicht viele DSL-Anwendungen und auferlegt eine O (n) kognitive Belastung (2).

Alternativen sind:
Bash: $(...)
Rubin: #{...}

Wie wir die kurze Syntax mit nur $expr nicht akzeptiert wurde (vielleicht obwohl von heute sehen können, weil es zunächst mit Schwerpunkt wurde auf der Verwendung Variablennamen, nicht beliebige Ausdrücke).

+0

Richtig, die Klammern erlauben beliebige Ausdrücke, was schön ist. Eine Kurzschrift '$ var' wäre eine nette Aufnahme gewesen. –

Verwandte Themen