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. docker api 开发的端口怎么获取?2. css - 关于input标签disabled问题3. html5 - 百度Ueditor代码高亮和代码段滚动条冲突是怎么回事?4. java基础,求解答。5. javascript - 静态页面引公共头尾文件,js怎么写吖?6. 如何调整IDEA中直接运行java程序的日志输出级别?7. debian - docker依赖的aufs-tools源码哪里可以找到啊?8. css3中translate(-50%,-50%)对 transform-origin的奇葩影响?9. javascript - vue 数据更新了。但是dom没有更新,,,,,如图10. mysql - sql 中 group 和field 查询问题。