Skip to content

Commit cb363b9

Browse files
committed
variable.md
1 parent 3655cca commit cb363b9

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@
5858
14. [JavaScript 是否有类似 range() 的方法,可以在边界内的生成一个范围?](./contents/basic/range.md)
5959
15. [在 JavaScript 中如何把字符转换成ASCII编码?](./contents/basic/ascii.md)
6060
16. [在 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

contents/basic/variable.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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)

0 commit comments

Comments
 (0)