在做AJAX应用开发的时候,我们通常喜欢把服务器端返回的JSON格式字符串在客户端的回调函数中把它作为JavaScript代码执行并用一个变量保存起来,以方便使用返回的数据。
通常的做法就是var jsonData = eval(xmlHttp.responseText)。这看起来似乎一切都是正确的,但当你运行代码的时候,你会发现报“invalid labe”错误了。

例如:
第一次使用eval(),将后台写的json格式字符串处理成json对象数组

var jsonstr = “{name:’test’,age:18}”;

var jsonobj = eval(jsonstr);

错误提示:

SyntaxError: invalid label

写到这里老是报错,看着觉得都对,怎么会拿不到对象呢?

为什么会这样?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval(“{}”); // return undefined

alert(eval(“({})”);// return object[Object]

如何解决?

var josnobj = eval(“(“+jsonstr+”)”);

或者这样

eval(“var jsonobj = ” + jsonstr);

JavaScript的eval()方法的使用相关推荐

  1. JavaScript中eval方法的替代方法

    公司开设新的考核标准,着重对代码质量进行考核,用到的代码实时检测工具是sonaLint.用SonarLint进行代码检测的时候,会 出现对显示审查结果严重提示 Review the arguments ...

  2. Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51809558 接着上篇Android中Web ...

  3. JavaScript之eval() 函数

    为什么80%的码农都做不了架构师?>>>    定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法 eval(string) 参数描述 ...

  4. java script eval_「eval」js中的eval方法详解(一)–eval方法的初级应用 - seo实验室...

    eval 在我看来,js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照javaScript语法进行解析并执行. 语法: eval(s); eval()方法中的参数s有多种情况.参数 ...

  5. JavaScript中eval()和$.parseJSON()的区别和联系以及JSON.stringify()的区别

    JavaScript中eval()和$.parseJSON()的区别和联系以及JSON.stringify()的区别 一.第一个区别是:安全性 json格式非常受欢迎,而解析json的方式通常用JSO ...

  6. java 调用js脚本_Java中使用JavaScript脚本的方法步骤

    简介 Nashorn Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引 ...

  7. JS的eval()方法

    定义和用法 eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执 ...

  8. js中的Eval方法

    eval 方法 检查 JScript 代码并执行. eval(codeString) 必选项 codestring 参数是包含有效 JScript 代码的字符串值.这个字符串将由 JScript 分析 ...

  9. 这是如何更好地利用JavaScript数组的方法

    by pacdiv 由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here's how you can make better use of JavaScript arrays) ...

最新文章

  1. centos 禁用root登录
  2. (0001) iOS 开发之收集第三方资源篇
  3. 如何使用firebug
  4. Android属性动画 PropertyValuesHolder
  5. 4.3.2 用jQuery进行异步加载(2)
  6. C++对类或结构体进行指定规则排序
  7. 拜托!不要用“ ! = null “ 做判空了
  8. 聚类算法(K-Means和DBSCAN)
  9. Java基础-Java语言简介
  10. WPF界面设计的模式
  11. Spring核心模块及功能汇总
  12. 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第六节 窗体对象的锚定
  13. 【算法讲19:同余最短路】跳楼机 | 墨墨的等式 | Lazy Running
  14. 自定义View中Canvas之Path的详解
  15. 毕业有救了?!留美学生创造出了自动写论文的机器人!
  16. codeforces 417D Cunning Gena
  17. Ubuntu登录界面键盘鼠标失灵
  18. 记录docker failed to initialize docker desktop is shutting down解决办法
  19. SA8155P QCOM 车载系统介绍
  20. 整数分解 费马方法c语言,因数分解(费马的方法)

热门文章

  1. 20230103编译ToyBrick的TB-RK3588X的Andorid12的LOG04
  2. 作文成功之路杂志作文成功之路杂志社作文成功之路编辑部2023年第3期目录
  3. html中如何文字换行,如何使用HTML / CSS将文字换行
  4. matlab武汉理工大学数值分析线性函数拟合实验_11数值分析第七章数值微积分龙贝格积分大学数学云课堂...
  5. Python3.6+selenium2.53.6自动化测试_禅道对登录页面动作进行封装并进行测试(一)(本地禅道)
  6. 防水试验箱市场深度研究分析报告
  7. 史上最全 Python 数据分析学习路线
  8. JFFS2的remount过程
  9. Camtasia 2019 注册信息配置
  10. Ubuntu 18.04 查看显示器信息