最近着迷 Javascript 中的对象,回顾以往项目时,记得用到C#里的Dictionary<T, T>时,利用 Microsoft ASP.NET AJAX Client 技术,可以将Dictionary<T, T>直接转为Javascript对象使用,今天突然想到,当Dictionary中的键是int类型时,返回到页面的Javascript对象会是怎样的?这个试验还没来得及做。

在Javascript中,可以利用JSON格式来定义对象,比如

 

var obj = {
    
1"重启",
    
2"关机",
    
3"开机"
}

alert(obj[
2]); // 这句会正常执行
alert(obj.2);  // 这句会报错

 

我们可以看到,对象名虽然有[_$a-zA-Z][_$a-zA-Z0-9]*的限制,但对于此obj[2],可以正常输出"关机",甚至,我们发现 

var obj2 = {
    
1"重启",
    
2"关机",
    
3"开机",
    
"!""奇怪的Javascript!" 
}

alert(obj2["!"]);


上述也能正常执行。

以前一直以为obj[property] === obj.property,看来错了。
obj.property的写法,仅仅当property为[_$a-zA-Z][_$a-zA-Z0-9]*时才成立。

而用obj[property]的写法,几乎可以支持任意符号。

遇到这点奇怪的,发上来,看看大家是否还可以挖掘一下。

相关文章:

  • 2021-10-19
  • 2021-11-02
  • 2023-03-03
  • 2021-09-18
  • 2021-11-16
  • 2021-08-04
  • 2021-10-12
  • 2021-10-17
猜你喜欢
  • 2022-02-15
  • 2022-02-19
  • 2021-06-02
  • 2022-12-23
  • 2022-12-23
  • 2021-07-23
相关资源
相似解决方案