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!
Antwort
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. kompatibelWir 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).
Richtig, die Klammern erlauben beliebige Ausdrücke, was schön ist. Eine Kurzschrift '$ var' wäre eine nette Aufnahme gewesen. –
- 1. Werden geschweifte Klammern in Lua verwendet?
- 2. Escape-Ausdruck geschweifte Klammern
- 3. Eclipse und geschweifte Klammern
- 4. StringTokenizer, um geschweifte Klammern aus der Datei zu extrahieren
- 5. Verwenden von sed, um geschweifte Klammern zu ersetzen
- 6. string.Format, regex + geschweifte Klammern (C#)
- 7. Wie geschweifte Klammern in PHP zu schließen
- 8. Wie geschweifte Klammern in Nodejs zu zählen
- 9. C++ Überprüfen, ob geschweifte Klammern
- 10. Texthervorhebung für ES6 Vorlagenliterale (Backticks) in IntelliJ IDEA
- 11. Automatisch geschweifte Klammern in Emacs?
- 12. geschweifte Klammern PHP auf Klasse
- 13. Warum verwendet numpy.r_ Klammern anstelle von Klammern?
- 14. ES6 Pfeilfunktion mit Klammern
- 15. Warum Polymer nicht ES6 verwendet
- 16. Emacs Spricht Statistiken: auto-close geschweifte Klammern
- 17. Klammern um Rückgabewerte - warum?
- 18. Java-Regex, um geschweifte Klammern abzustimmen - "ungültige Escape-Sequenz"
- 19. Wenn geschweifte Klammern um eine Variable gewickelt werden sollen
- 20. Was sind geschweifte Klammern nach Funktionsaufruf?
- 21. Warum benötigen Bash-Befehlszeilenargumente nach 9 geschweifte Klammern?
- 22. Wie geschweifte Klammern in Django-Vorlagen?
- 23. Geschweifte Klammern beim Erweitern der Node.js-Klasse
- 24. Matlab verketten variable Zeichenfolge ohne geschweifte Klammern
- 25. Reduzieren unnötige geschweifte Klammern die Leistung?
- 26. Wofür sind JSDoc @ type geschweifte Klammern?
- 27. C# Regex.Match geschweifte Klammern - nur Inhalt? (Klammern ausschließen)
- 28. VS 2013: geschweifte Klammern Größe nicht übereinstimmen
- 29. StyleCop-Regel für mehrzeilige geschweifte Klammern
- 30. Ist es falsch, geschweifte Klammern für verschiedene Zwecke zu verwenden?
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
@zeroflagL Ich denke, sie meinen obwohl warum nicht einfach '{a + b}' sehen, da das Literal bereits durch Backticks – CodingIntrigue
@RGraham Good Punkt bezeichnet wird. Obwohl literal '{}' könnte häufiger als literal '$ {}' verwendet werden. – zeroflagL