javascript - 关于选择器的简单小问题
问题描述
为什么下面这个选择器总是报错
var add-button=$(’button[name=add]’)
而换了个变量名就不报错了
var add=$(’button[name=add]’)
初学者写js遇到的小问题,希望有人可以解惑
问题解答
回答1:变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号和变量名禁止使用JavaScript关键词、保留字全名。add(-)button属于其他符号。
回答2:add_button 这样就不报错了变量命名规则,字母或者_打头,后面放什么数字字母下划线,命名规则里面没有`-`连字符回答3:
楼上两位说的都对,初学最好了解一下命名规则和习惯
回答4:标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript引擎遇到非法标识符,就会报错。
简单说,标识符命名规则如下:
第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9。下面这些都是合法的标识符。
arg0_tmp$elemπ
下面这些则是不合法的标识符。
1a // 第一个字符不能是数字23 // 同上*** // 标识符不能包含星号a+b // 标识符不能包含加号-d // 标识符不能包含减号或连词线
中文是合法的标识符,可以用作变量名。
var 临时变量 = 1;
JavaScript有一些保留字,不能用作标识符: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。
另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。
回答5:标识符不符合规范add-button中间的-非法字符
回答6:最好用_,不要用-
相关文章:
1. javascript - h5上的手机号默认没有识别2. css - div display: inline-block; 置中?3. angular.js - ionic 弹窗样式4. python - 网站显示的图片与爬虫获取到的图片不同,应该如何确定问题?5. 极光推送 - Android app消息推送 百度 极光 个推 信鸽哪个好一些?6. javascript - ajax中的 textStatus 报错为 parsererror?7. javascript - 在html中写了个<video>视频,浏览器却是一片空白为什么呢?360浏览器?8. javascript - 如何保证数据库里的信息安全?9. css3 - Firefox 字号相对IE、Chrome更大,如何在CSS中统一?10. vue.js - weex scroller搭配refresh在android平台上拉会触发refresh