645 Stimmen

Welche Zeichen sind für JavaScript-Variablennamen zulässig?

Welche Zeichen können für die Benennung einer JavaScript-Variablen verwendet werden?

Ich möchte eine kleine "Erweiterungsbibliothek" für meine Nicht-JavaScript-Benutzer hier bei der Arbeit zu schaffen (die alle scheinen zimperlich zu sein, wenn es um die Sprache kommt). Ich liebe, wie jQuery und Prototype haben beide verwenden die $ Dollar-Zeichen, und da ich jQuery verwenden, bin ich auf der Suche nach einem anderen netten Ein-Zeichen-Symbol zu verwenden.

Mir ist klar, dass ich einfach eine Reihe von Zeichen testen könnte, aber ich hoffe, dass ich meine Liste von Zeichen für den Anfang eingrenzen kann (vielleicht in Anbetracht einer zukünftigen Integration mit einer anderen beliebten Bibliothek).

19 Stimmen

Wenn Sie nur nach alternativen Symbolen suchen, ist das griechische Alphabet gültig (z. B, )... oder wenn Sie Ihre anderen Entwickler wirklich durcheinander bringen wollen, könnten Sie das englische Alphabet verwenden, aber in einer anderen Schriftart (z.B., ) ...auch gültig!

13voto

EndangeredMassa Punkte 16782

Javascript-Variablen

Sie können eine Variable mit einem beliebigen Buchstaben beginnen, $ , oder _ Charakter. Solange es nicht mit einer Zahl beginnt, können Sie auch Zahlen verwenden.

Start: [a-z], $, _

Enthalten: [a-z], [0-9], $, _

jQuery

Sie können verwenden _ für Ihre Bibliothek, so dass sie Seite an Seite mit jQuery verwendet werden kann. Es gibt jedoch eine Konfiguration, die Sie so einstellen können, dass jQuery nicht $ . Es wird stattdessen verwendet jQuery . Dazu stellen Sie einfach ein:

jQuery.noConflict();

Diese Seite erklärt, wie man das macht.

12voto

Svish Punkte 144948

Die akzeptierte Antwort würde eine Menge gültiger Identifikatoren ausschließen soweit ich das sehen kann. Hier ist ein regulärer Ausdruck, den ich zusammengestellt habe und der wie folgt lauten sollte die Spezifikation (siehe Kapitel 7.6 über Bezeichner). Sie wurde mit RegexBuddy erstellt, und Sie können einen Export der Erklärung finden unter http://samples.geekality.net/js-identifiers .

^[$_\p{L}][$_\p{L}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\u200C\u200D]*+$

Außerdem darf der Name nicht aus einem der folgenden reservierten Wörter bestehen.

break, do, instanceof, typeof, case, else, new, var, catch, finally, return, void, continue, for, switch, while, debugger, function, this, with, default, if, throw, delete, in, try, class, enum, extends, super, const, export, import, implements, let, private, public, yield, interface, package, protected, static, null, true, false

11voto

Anas Nakawa Punkte 1887

Falls reguläre Ausdrücke nicht zwingend erforderlich sind, wäre es nicht besser, den Browser zu bitten, die Entscheidung mittels eval ?

function isValidVarName( name ) {
    try {
        // Update, previoulsy it was
        // eval('(function() { var ' + name + '; })()');
        Function('var ' + name);
    } catch( e ) {
        return false;
    }
    return true;
}

isValidVarName('my_var');     // true
isValidVarName('1');          // false

6voto

Miguel Ventura Punkte 9926

Javascript-Variablen können Buchstaben, Ziffern, Dollarzeichen ($) und Unterstriche (_) enthalten. Sie können nicht mit Ziffern beginnen.

Normalerweise verwenden Bibliotheken $ y _ als Abkürzungen für Funktionen, die Sie überall verwenden werden. Obwohl die Namen $ o _ nicht aussagekräftig sind, sind sie wegen ihrer Kürze nützlich, und da Sie die Funktion überall verwenden werden, wird von Ihnen erwartet, dass Sie wissen, was sie bedeuten.

Wenn Ihre Bibliothek nicht aus einer einzigen Funktion besteht, die überall verwendet wird, empfehle ich Ihnen, aussagekräftigere Namen zu verwenden, da diese Ihnen und anderen helfen, zu verstehen, was Ihr Code tut, ohne unbedingt den Quellcode zu beeinträchtigen Nettigkeit .

Sie könnten zum Beispiel einen Blick auf die großartige DateJS Bibliothek und dem syntaktischen Zucker, den sie ermöglicht, ohne die Notwendigkeit einer Symbol o Kurzname Variablen.

Sie sollten Ihren Code zuerst praktisch gestalten und erst danach versuchen, ihn schön zu machen.

3voto

Allain Lalonde Punkte 88365

Schrieb ein Glitch-Arbeitsbereich die alle Codepunkte durchläuft und das Zeichen ausgibt, wenn eval('var ' + String.fromCodePoint(#) + ' = 1') funktioniert.

Es geht einfach weiter und weiter und weiter....

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X