zoukankan      html  css  js  c++  java
  • 20080911 奇怪的 Javascript 对象

    最近着迷 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]的写法,几乎可以支持任意符号。

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

  • 相关阅读:
    Windows通过DOS命令进入MySQL的方法
    php使用phpqrcode生成二维码
    js字符串转换为Json对象的三种写法
    Linux系统中RPM软件包安装语法
    Linux系统中软件安装方式以及特点
    vue-生存周期
    echart力导向图
    css样式,高斯模糊
    某布局
    跨浏览器兼容
  • 原文地址:https://www.cnblogs.com/likun/p/1289456.html
Copyright © 2011-2022 走看看