File tree Expand file tree Collapse file tree 2 files changed +49
-1
lines changed Expand file tree Collapse file tree 2 files changed +49
-1
lines changed Original file line number Diff line number Diff line change 585814 . [ JavaScript 是否有类似 range() 的方法,可以在边界内的生成一个范围?] ( ./contents/basic/range.md )
595915 . [ 在 JavaScript 中如何把字符转换成ASCII编码?] ( ./contents/basic/ascii.md )
606016 . [ 在 JavaScript 中 addEventListener 和 onclick 之间有什么区别?] ( ./contents/basic/onclick.md )
61- 17 . [ 在 JavaScript 中如何判断一个 number类型 是浮点数还是整数?] ( ./contents/basic/integerVsFloat.md )
61+ 17 . [ 在 JavaScript 中如何判断一个数值是浮点数还是整数?] ( ./contents/basic/integerVsFloat.md )
62+ 18 . [ 为什么 ◎ܫ◎ 和 ☺ 不是有效的 JavaScript 变量名?] ( ./contents/basic/variable.md )
6263
6364- todo ...
6465
Original file line number Diff line number Diff line change 1+ ## 问题:为什么 ◎ܫ◎ 和 ☺ 不是有效的 JavaScript 变量名?
2+
3+ 我注意到,在 ` Internet Explorer ` 中(在我测试的其他浏览器中没有),你可以使用一些 ` Unicode ` 变量名。
4+
5+ 这让我大开眼界,我很高兴,因为我可以写出像这样充满 ` Unicode ` 的有趣代码。
6+
7+ ``` js
8+ var ктоείναι草泥马 = " You dirty horse." ,
9+ happy☺n☺mat☺p☺eia = " :)Yay!" ,
10+ ಠ_ಠ = " emoticon" ;
11+
12+ alert (ктоείναι草泥马 + happy☺n☺mat☺p☺eia + ಠ_ಠ);
13+ ```
14+
15+ 由于某些原因,◎ܫ◎、♨_ ♨ 和 ☺ 都不是有效的变量名。
16+
17+ 为什么 ` ಠ_ಠ ` 和 ` 草泥马 ` 可以用,而 ◎ܫ◎、♨_ ♨ 和 ☺ 却不行?
18+
19+ ## 答案
20+
21+ ` ಠ_ಠ ` 和 ` 草泥马 ` 其实只是实际的字母中使用的 ` 字符(letters) ` ;
22+
23+ 也就是说,` ಠ ` 是卡纳达字母表中的一个符号,而 ` 草泥马 ` 也是由汉字组成。
24+
25+ 而,◎ 和 ☺ 是纯粹的符号;它们与任何字母都没有联系。
26+
27+ ECMAScript标准第7.6章(除Internet Explorer外,所有的浏览器都遵循这个标准)规定,标识符必须以下列之一开头。
28+
29+ - Unicode 字符
30+ - ` $ ` or ` _ `
31+ - ` \ ` 后面是一个 unicode 转义序列
32+
33+ 识别符的以下字符必须是以下之一。
34+
35+ - 任何允许在开头的字符
36+ - Unicode 组合标记
37+ - Unicode 数字
38+ - Unicode 连接的标点符号
39+ - 零宽度的非连接符
40+ - 零宽度的连接符
41+
42+ ` IE ` 超越了标准,允许使用一些符号,如 ☺ 。
43+
44+ 有一个 [ 工具] ( https://mothereff.in/js-variables ) 可以告诉你,你输入的字符串是否是一个有效的 ` JavaScript ` 变量名。
45+
46+
47+ > 问题来源:[ https://stackoverflow.com/questions/7451524/why-arent-%dc%ab-and-valid-javascript-variable-names ] ( https://stackoverflow.com/questions/7451524/why-arent-%dc%ab-and-valid-javascript-variable-names )
You can’t perform that action at this time.
0 commit comments