zoukankan      html  css  js  c++  java
  • 为什么使用eval()将json字符串转换为对象要多加一个小括号

    使用eval()将json字符串转换为对象要多加一个小括号: 
    关于eval()函数的具体用法这里就不多介绍了,具体可以参阅javascript的eval()方法一章节,下面就介绍一下为什么使用eval()函数将json格式字符串转换为对象的时候,需要多嵌套一层小括号,下面就介绍一下它的原因,希望能够对需要的朋友带来帮助。 
    先看一段转换代码:

    var jsonStr='{"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2}';
    var jsonObject=eval("("+jsonStr+")");
    console.log(jsonObject.webName);

    以上代码可以将一个json格式字符串转换成对象,下面就介绍一下为何要嵌套一个效果括号。 
    如果不加小括号的话,字符串将被eval()函数处理为:

    {"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2}

    在js中,如果一段代码既可以认为是表达式也可以认为是语句,那么语句优先,所以上面就是一个语句,那么”webName”:”蚂蚁部落”就是标签语句,但是逗号运算符后面也是一个标签语句就不对了,因为运算符后面要跟着表达式才可以。如果外面套上一层小括号,那么代码就会被eval()处理成:

    ({"webName":"蚂蚁部落","webAddress":"青岛市南区","age":2})

    因为小括号之中必须是表达式,那么里面的内容就成了一个对象直接量表达式,也就是转换成功了。

  • 相关阅读:
    LocalDateTime方法plusHours()
    windows查看所有端口, 查看端口是否占用
    maven编译引起excel文件损坏问题解决
    Java BigDecimal 添加数据
    postgresql数据库设置联合主键的语句
    Linux为普通用户挂载磁盘
    Glog不打印错误方法
    关闭书莓派3B所有指示灯
    巧用Python自带http服务实现文件共享
    VIM高阶使用技巧
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7889836.html
Copyright © 2011-2022 走看看