1、eval方法只能在非严格模式中进行使用,在use strict中是不允许使用这个方法的。
2、eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值。如下:
var
; //->'a2'
; //->2
; //->[object Object]
3、eval直接在函数内部使用则返回的是局部变量
;//这样会报错,因为a是局部变量,只能在te方法内使用
4、有两种的处理方式可以使在函数内部使用的eval成为全局变量
(1)利用window.eval()使其成为全局的
(2) function te (){
所以说在非严格的模式下,又多了一种方法将JSON字符串形式转换为对象的形式。就是利用var m=eval_r(‘(’+data+’)’),m是JSON对象。其功能和JSON.parse()是相似的,但是当已经为通过JSON.parse()转换为对象后的JSON不能再调用该函数继续进行转换,这样会报错,但是eval_r()方法不会当传入字符串是对象使继续使用上述的方式,然会返回原对象。
本文详细介绍了JavaScript中的eval函数,包括其使用限制、参数处理方式、如何返回不同类型的值以及如何将其用于JSON字符串到对象的转换。此外,还探讨了在函数内部使用eval时变量作用域的问题及解决方法。
900

被折叠的 条评论
为什么被折叠?



