javascript - 關(guān)于選擇器的簡(jiǎn)單小問(wèn)題
問(wèn)題描述
為什么下面這個(gè)選擇器總是報(bào)錯(cuò)
var add-button=$(’button[name=add]’)
而換了個(gè)變量名就不報(bào)錯(cuò)了
var add=$(’button[name=add]’)
初學(xué)者寫(xiě)js遇到的小問(wèn)題,希望有人可以解惑
問(wèn)題解答
回答1:變量名區(qū)分大小寫(xiě),允許包含字母、數(shù)字、美元符號(hào)($)和下劃線,但第一個(gè)字符不允許是數(shù)字,不允許包含空格和其他標(biāo)點(diǎn)符號(hào)和變量名禁止使用JavaScript關(guān)鍵詞、保留字全名。add(-)button屬于其他符號(hào)。
回答2:add_button 這樣就不報(bào)錯(cuò)了變量命名規(guī)則,字母或者_(dá)打頭,后面放什么數(shù)字字母下劃線,命名規(guī)則里面沒(méi)有`-`連字符回答3:
樓上兩位說(shuō)的都對(duì),初學(xué)最好了解一下命名規(guī)則和習(xí)慣
回答4:標(biāo)識(shí)符(identifier)是用來(lái)識(shí)別具體對(duì)象的一個(gè)名稱。最常見(jiàn)的標(biāo)識(shí)符就是變量名,以及后面要提到的函數(shù)名。JavaScript語(yǔ)言的標(biāo)識(shí)符對(duì)大小寫(xiě)敏感,所以a和A是兩個(gè)不同的標(biāo)識(shí)符。
標(biāo)識(shí)符有一套命名規(guī)則,不符合規(guī)則的就是非法標(biāo)識(shí)符。JavaScript引擎遇到非法標(biāo)識(shí)符,就會(huì)報(bào)錯(cuò)。
簡(jiǎn)單說(shuō),標(biāo)識(shí)符命名規(guī)則如下:
第一個(gè)字符,可以是任意Unicode字母(包括英文字母和其他語(yǔ)言的字母),以及美元符號(hào)($)和下劃線(_)。第二個(gè)字符及后面的字符,除了Unicode字母、美元符號(hào)和下劃線,還可以用數(shù)字0-9。下面這些都是合法的標(biāo)識(shí)符。
arg0_tmp$elemπ
下面這些則是不合法的標(biāo)識(shí)符。
1a // 第一個(gè)字符不能是數(shù)字23 // 同上*** // 標(biāo)識(shí)符不能包含星號(hào)a+b // 標(biāo)識(shí)符不能包含加號(hào)-d // 標(biāo)識(shí)符不能包含減號(hào)或連詞線
中文是合法的標(biāo)識(shí)符,可以用作變量名。
var 臨時(shí)變量 = 1;
JavaScript有一些保留字,不能用作標(biāo)識(shí)符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
另外,還有三個(gè)詞雖然不是保留字,但是因?yàn)榫哂刑貏e含義,也不應(yīng)該用作標(biāo)識(shí)符:Infinity、NaN、undefined。
回答5:標(biāo)識(shí)符不符合規(guī)范add-button中間的-非法字符
回答6:最好用_,不要用-
相關(guān)文章:
1. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款2. html5 - h5寫(xiě)的app用的webview,用手機(jī)瀏覽器打開(kāi)不顯示?3. css3 - css before 中文亂碼?4. Mysql && Redis 并發(fā)問(wèn)題5. javascript - node服務(wù)端渲染的困惑6. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題7. javascript - webpack --hot 熱重載無(wú)效的問(wèn)題8. mysql新建字段時(shí) timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 報(bào)錯(cuò)9. mysql scripts提示 /usr/bin/perl: bad interpreter10. mysql - 一個(gè)表和多個(gè)表是多對(duì)多的關(guān)系,該怎么設(shè)計(jì)
