2 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
根據(jù)7.6標(biāo)識(shí)符名稱和標(biāo)識(shí)符中的ECMAScript規(guī)范,有效標(biāo)識(shí)符定義為:
Identifier :: IdentifierName but not ReservedWordIdentifierName :: 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
這為命名變量和打高爾夫球創(chuàng)造了很多機(jī)會(huì)。我們來試試吧。
一個(gè)有效的標(biāo)識(shí)符可以與無論是開始UnicodeLetter
,$
,_
,或\ UnicodeEscapeSequence
。unicode字母是這些類別中的任何字符(請參閱所有類別):
大寫字母(Lu)
小寫字母(Ll)
標(biāo)題字母(Lt)
修飾符(Lm)
其他字母(Lo)
字母編號(hào)(Nl)
僅這一點(diǎn)就解釋了一些瘋狂的可能性 - 工作實(shí)例。如果它在所有瀏覽器中都不起作用,那么稱之為bug,因?yàn)樗鼞?yīng)該。
var ? = "something";
var ????? = "hello";
var ???? = "less than? wtf";
var ????????????? = "javascript"; // ok that's JavaScript in hindi
var KingGeorgeⅦ = "Roman numerals, awesome!";

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
基本上,以正則表達(dá)式形式:[a-zA-Z_$][0-9a-zA-Z_$]*
。換句話說,第一個(gè)字符可以是字母或_或$,其他字符可以是字母或_或$或數(shù)字。
注意:雖然其他答案指出您可以在JavaScript標(biāo)識(shí)符中使用Unicode字符,但實(shí)際問題是“我應(yīng)該使用哪些字符作為擴(kuò)展庫的名稱,如jQuery?” 這是對這個(gè)問題的回答。您可以在標(biāo)識(shí)符中使用Unicode字符,但不要這樣做。編碼一直搞砸了。將您的公共標(biāo)識(shí)符保存在安全的32-126 ASCII范圍內(nèi)。
添加回答
舉報(bào)