============= 关于标识符 ===============

愚者只看星不看答案 2014-08-19 08:02:23
书上的话:
所谓标识符,就是指变量,函数,属性的名字或函数的参数,标识符可以是按照下列格式规则组合起来的一或多个字符。
第一个字符必须是一个字母,下划线或一个美元符号。

请问:
var x={1:'hello'}
console.log(x[1])

x的属性1并不符合以上要求,为什么这样不会有问题?
...全文
180 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 12 楼 u011461314 的回复:
补上个链接 http://www.ecma-international.org/ecma-262/5.1/#sec-11.1.5
感谢 。。。 英文好就是让人妒嫉。。。。
zhjdg 2014-08-19
  • 打赏
  • 举报
回复
补上个链接 http://www.ecma-international.org/ecma-262/5.1/#sec-11.1.5
zhjdg 2014-08-19
  • 打赏
  • 举报
回复
只注意你的题目,没注意你的内容。 你那个应该是Object Initialiser 对象初始化是一个以直接量的方式描述对象的初始化过程的表达式 Syntax ObjectLiteral : { } { PropertyNameAndValueList } { PropertyNameAndValueList , } PropertyNameAndValueList : PropertyAssignment PropertyNameAndValueList , PropertyAssignment PropertyAssignment : PropertyName : AssignmentExpression get PropertyName ( ) { FunctionBody } set PropertyName ( PropertySetParameterList ) { FunctionBody } PropertyName : IdentifierName StringLiteral NumericLiteral PropertySetParameterList : Identifier
  • 打赏
  • 举报
回复
引用 8 楼 u011461314 的回复:
http://www.ecma-international.org/ecma-262/5.1/#sec-7.6 Identifier Names are tokens that are interpreted according to the grammar given in the “Identifiers” section of chapter 5 of the Unicode standard, with some small modifications. An Identifier is an IdentifierName that is not a ReservedWord 标识符名是tokens,Unicode 标准第5 章的“标识符”节给出的文法加入了一些小的修改来解释它。Identifier 是一个IdentifierName 但不是一个ReservedWord 知道不是ReservedWord就可以。

种 = 4;
a = 种+种;


感谢 回复。 我清楚标识符一直是可以使用unicode字符集中的字符的,我想可能的原因就是书的作者是参考的ES3的标准。。 ES5对ES3做了一些修正。
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
随着社会的进步,规则也是在逐渐变化的
我 = 123;
alert(我);
但是标识符一直就是允许unicode字符集中的字符的。
zhjdg 2014-08-19
  • 打赏
  • 举报
回复
http://www.ecma-international.org/ecma-262/5.1/#sec-7.6 Identifier Names are tokens that are interpreted according to the grammar given in the “Identifiers” section of chapter 5 of the Unicode standard, with some small modifications. An Identifier is an IdentifierName that is not a ReservedWord 标识符名是tokens,Unicode 标准第5 章的“标识符”节给出的文法加入了一些小的修改来解释它。Identifier 是一个IdentifierName 但不是一个ReservedWord 知道不是ReservedWord就可以。

种 = 4;
a = 种+种;


  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
{}是json对象,键名称可以是任何字符。。不过不是标准标识符最后是这样写
var x={"1":'hello'}
严格 来讲,'{"1":'hello'}'这个才是JSON,而 {key:"value"}这个才是JavaScript对象,有 点扯远了
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
随着社会的进步,规则也是在逐渐变化的
我 = 123;
alert(我);
精妙。。。
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
console.log(x[1]) 你不是当做数组访问的吗? console.log(x.1) 还会没问题吗?
感谢 回复,数组和对象我还是可以区分的。 var x={'key':'value'} x['key'] 这里属性是一个string,这不能看成是数组访问的吧?
xuzuning 2014-08-19
  • 打赏
  • 举报
回复
随着社会的进步,规则也是在逐渐变化的
我 = 123;
alert(我);
  • 打赏
  • 举报
回复
{}是json对象,键名称可以是任何字符。。不过不是标准标识符最后是这样写
var x={"1":'hello'}
xuzuning 2014-08-19
  • 打赏
  • 举报
回复
console.log(x[1]) 你不是当做数组访问的吗? console.log(x.1) 还会没问题吗?
varlj 2014-08-19
  • 打赏
  • 举报
回复
我感觉,这是一个类似hashtable的结构,hashtable的key是会通过一定的算法,指向一个唯一的地址,所以这个1在这里应该不算是标识吧,算是hashtable的一个key

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧