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 - 父级设置了相对定位。子元素设置了绝对定位。子元素中包含了浮动的table,这个时候高度不能自适应。2. docker容器呢SSH为什么连不通呢?3. javascript - js的string数据类型,这段表述是什么意思?4. dockerfile - 为什么docker容器启动不了?5. golang - 用IDE看docker源码时的小问题6. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?7. docker api 开发的端口怎么获取?8. Span标签9. docker start -a dockername 老是卡住,什么情况?10. debian - docker依赖的aufs-tools源码哪里可以找到啊?
