为什么#字符在javascript中是特殊的?
Why # character is special in javascript?
JS中禁止作为变量名一部分的大部分字符都有特殊含义:
- &、*、%、^等为运算符;
- @用于声明装饰器;
- 分支 (){}[] 是语言的重要组成部分;
- 没有特殊含义的_和$可以很方便的用作变量名
# 字符呢?为什么特别?
我的猜测是,语言通常不允许在变量名称中使用井号 #
字符,JavaScript 紧随其后。
另外,由于它是评论开始的角色,所以有不少
languages,添加它可能会被视为毫无意义且可能令人困惑的事情。
#
没有什么特别的。它只是众多非有效 Unicode Identifier Start 或 Identifier Continue 字符之一。一个更好的问题可能是什么让 $
和 _
变得特别以至于它们变成了 valid identifier parts?
可能 使它与众不同的是,它是为数不多的可打印 ASCII 字符之一,这些字符作为标识符名称无效,但在 EcmaScript 1 的其他任何地方也没有用作标点符号。有是
`
,自 ES6 起用作模板文字的分隔符
@
,建议用于decorator syntax
#
,建议用于private field syntax
JS中禁止作为变量名一部分的大部分字符都有特殊含义:
- &、*、%、^等为运算符;
- @用于声明装饰器;
- 分支 (){}[] 是语言的重要组成部分;
- 没有特殊含义的_和$可以很方便的用作变量名
# 字符呢?为什么特别?
我的猜测是,语言通常不允许在变量名称中使用井号 #
字符,JavaScript 紧随其后。
另外,由于它是评论开始的角色,所以有不少 languages,添加它可能会被视为毫无意义且可能令人困惑的事情。
#
没有什么特别的。它只是众多非有效 Unicode Identifier Start 或 Identifier Continue 字符之一。一个更好的问题可能是什么让 $
和 _
变得特别以至于它们变成了 valid identifier parts?
可能 使它与众不同的是,它是为数不多的可打印 ASCII 字符之一,这些字符作为标识符名称无效,但在 EcmaScript 1 的其他任何地方也没有用作标点符号。有是
`
,自 ES6 起用作模板文字的分隔符
@
,建议用于decorator syntax#
,建议用于private field syntax