Какие символы допустимы для имен переменных JavaScript?

Попробуйте этот код, надеюсь, это вам поможет. Если этот пакет доступен, это откроет приложение или откроет магазин воспроизведения для загрузки

    String  packageN = "aman4india.com.pincodedirectory";

            Intent i = getPackageManager().getLaunchIntentForPackage(packageN);
            if (i != null) {
                i.addCategory(Intent.CATEGORY_LAUNCHER);
                startActivity(i);
            } else {
                try {
                    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageN)));
                }
                catch (android.content.ActivityNotFoundException anfe) {
                    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + packageN)));
                }
            }
520
задан Machavity 7 June 2018 в 15:42
поделиться

6 ответов

Я думаю, вам нужна спецификация Ecma 262:

http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

На странице 15 есть раздел, который определяет, каким может быть синтаксис идентификатора.

39
ответ дан 28 July 2019 в 07:51
поделиться

Обычно в форме регулярного выражения: [a-zA-Z _ $] [0-9a-zA-Z _ $] * . Другими словами, первый символ может быть буквой или _ или $, а другие символы могут быть буквами, _, $ или цифрами.

Примечание: Хотя в других ответах указывалось, что вы можете использовать символы Unicode в идентификаторах JavaScript фактический вопрос был «Какие символы я должен использовать для имени библиотеки расширений, такой как jQuery?» Это ответ на этот вопрос. Вы можете использовать символы Unicode в идентификаторах, но не делайте этого. Кодировки все время лажают. Держите свои общедоступные идентификаторы в диапазоне 32–126 ASCII, где это безопасно.

70
ответ дан 22 November 2019 в 22:24
поделиться

Переменные Javascript

Вы можете начать переменную с любой буквы, символа $ или _ . Если он не начинается с числа, вы также можете включать числа.

Начало: [az], $, _

Содержит: [az], [0-9 ], $, _

jQuery

Вы можете использовать _ для своей библиотеки, чтобы она работала бок о бок с jQuery. Однако есть конфигурация, которую вы можете настроить так, чтобы jQuery не использовал $ . Вместо этого будет использоваться jQuery . Для этого просто установите:

jQuery.noConflict();

На этой странице объясняется, как это сделать.

13
ответ дан 22 November 2019 в 22:24
поделиться

Переменные Javascript могут иметь буквы, цифры, знаки доллара ($) и подчеркивания (_). Они не могут начинаться с цифр.

Обычно библиотеки используют $ и _ как ярлыки для функций, которые вы будете использовать везде. Хотя имена $ или _ не имеют смысла, они полезны из-за своей краткости и поскольку вы будете использовать функцию везде, где ожидается, что вы знаете, что они означают.

Если ваша библиотека не предусматривает повсеместного использования единственной функции, я бы рекомендовал вам использовать более значимые имена, поскольку они помогут вам и другим понять, что делает ваш код, без ущерба для исходного кода любезность .

6
ответ дан 22 November 2019 в 22:24
поделиться

Actually, ECMAScript says on page 15: That an identifier may start with a $, an underscore or a UnicodeLetter, and then it goes on (just below that) to specify that a UnicodeLetter can be any character from the unicode catagories, Lo, Ll, Lu, Lt, Lm and Nl. And when you look up those catagories you will see that this opens up a lot more possibilities than just latin letters. Just search for "unicode catagories" in google and you can find them.

14
ответ дан 22 November 2019 в 22:24
поделиться

Из спецификации ECMAScript в разделе 7.6 Имена и идентификаторы идентификаторов действительный идентификатор определяется как:

Identifier :: 
    IdentifierName but not ReservedWord

IdentifierName :: 
    IdentifierStart 
    IdentifierName IdentifierPart 

IdentifierStart :: 
    UnicodeLetter 
    $ 
    _ 
    \ UnicodeEscapeSequence 

IdentifierPart :: 
    IdentifierStart 
    UnicodeCombiningMark 
    UnicodeDigit 
    UnicodeConnectorPunctuation 
    \ UnicodeEscapeSequence 

UnicodeLetter 
    any character in the Unicode categories “Uppercase letter (Lu)”, “Lowercase letter (Ll)”, “Titlecase letter (Lt)”, 
    “Modifier letter (Lm)”, “Other letter (Lo)”, or “Letter number (Nl)”. 

UnicodeCombiningMark 
    any character in the Unicode categories “Non-spacing mark (Mn)” or “Combining spacing mark (Mc)” 

UnicodeDigit 
    any character in the Unicode category “Decimal number (Nd)” 

UnicodeConnectorPunctuation 
    any character in the Unicode category “Connector punctuation (Pc)” 

UnicodeEscapeSequence 
    see 7.8.4. 

HexDigit :: one of 
    0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

, который создает много возможностей для именования переменных, а также в гольфе. Попробуем несколько примеров.

Допустимый идентификатор может начинаться с UnicodeLetter , $ , _ или \ UnicodeEscapeSequence . Буква Unicode - это любой символ из этих категорий ( см. Все категории ):

  • Заглавная буква (Lu)
  • Строчная буква (Ll)
  • Буква регистра заголовка (Lt)
  • Буква-модификатор (Lm)
  • Другая буква (Lo)
  • Номер буквы (Nl)

Одно это объясняет некоторые безумные возможности - рабочие примеры . Если это не работает во всех браузерах, назовите это ошибкой, потому что это должно быть.

var ᾩ = "something";
var ĦĔĽĻŎ = "hello";
var 〱〱〱〱 = "less than? wtf";
var जावास्क्रिप्ट = "javascript"; // ok that's JavaScript in hindi
var KingGeorgeⅦ = "Roman numerals, awesome!";
116
ответ дан 22 November 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: