草庐IT

Hap-Eval

全部标签

javascript - 在 JavaScript 中使用 eval() 函数时如何捕获全局常量变量更改错误

我尝试检查es6中的“变量”是否常量:consta=1;functiontest(){try{a=2;//throwsanerror}catch(error){console.log(error)}}test();但是当我使用eval()函数时,它不会抛出错误。consta=1;functiontest(){try{eval("a=2;")//notthrowsanerror}catch(error){console.log(error)}}test();我将常量设置为本地常量,函数eval确实会按预期抛出错误。functiontest(){try{consta=1;eval("a=2

javascript:转换一个用 eval 创建的对象

我有一组在整个应用程序中使用的javascript类。在一种情况下,我想从形状匹配我的一个类的ajax响应中评估一些json。我正在使用jqueryparseJSON方法为我进行评估。唯一的问题是我现在想调用我的类中定义的方法,但我知道该方法不会存在于已评估的对象上。让这个方法在我的新对象上可用的最好方法是什么。有没有办法“转换”它? 最佳答案 JavaScript中没有转换的概念。相反,您可以修改类的构造函数以接受普通对象。你如何做到这一点取决于你如何设置你的类,但可以简单地将对象的浅拷贝包含到类的新实例中:varMyClass=

javascript - 使用 fs.readFileSync 和 eval 内容读取文件...哪个范围具有这些功能?如何访问?

我最近尝试将一个文件导入到我现有的node.js项目中。我知道这应该用一个模块来编写,但我包含了我这样的外部javascript文件:eval(fs.readFileSync('public/templates/simple.js')+'')simple.js的内容如下所示:if(typeofexamples=='undefined'){varexamples={};}if(typeofexamples.simple=='undefined'){examples.simple={};}examples.simple.helloWorld=function(opt_data,opt_sb

javascript - 为什么我收到这个 jsfiddle 错误,document.write 可以是 eval 的一种形式

我正在测试我在读书时找到的代码。我在JSfiddle中测试它时遇到此错误,document.write可以是eval的一种形式。vartext=''+'Thisisbold!';vartags=/[^]+|]*)>/g;vara,i;while((a=tags.exec(text))){for(i=0;i我在document.writeln()的两行上都收到了上述JSfiddle警告。 最佳答案 请注意,这只是一个警告-但应该得到尊重。它实际上是由一个名为JSLint的检查器生成的-http://www.jameswiseman.c

javascript - 为什么不是 eval() JSON?

据我所知,eval()被认为是不好的做法出于安全考虑,JavaScript中的JSON对象。如果JSON来自另一台服务器,我可以理解这种担忧。但是如果JSON是我自己的服务器提供的,是用PHP的json_encode创建的(让我们假设它不是buggy),简单地使用eval()是否合法?在JS中读取JSON还是有什么我目前想不到的安全问题?我真的不想处理动态加载JSON解析器的问题,我很乐意简单地使用eval().PS:我显然会使用原生的JSON对象,如果可用,但想回退到eval()适用于IE/Opera。 最佳答案 在您的场景中,问

javascript - 使用 eval() 定义 const 变量

当我尝试使用var定义变量时,一切正常。但是将其定义为const并没有按预期工作,并且该变量未定义。window.eval("varv=5;");document.body.innerHTML+=window.v===undefined;window.eval("constl=5;");document.body.innerHTML+=window.l===undefined;我已经在Chrome和Node.js上测试过它。我错过了什么吗?提前致谢! 最佳答案 在eval代码中使用let和const不会调用严格模式。let和cons

javascript - 带有净化输入的 eval() 的安全性

这个问题在这里已经有了答案:WhenisJavaScript'seval()notevil?(27个答案)Isusingjavascripteval()safeforsimplecalculationsininputs?(2个答案)关闭8年前。我想使用eval()来解决简单的方程式和逻辑表达式,例如12*(4+3)。当输入(可能不受信任)被清理并且只允许数字时,客户端eval的安全性如何,+-*/()|&!以及“真”和“假”这两个词?可用的方程式JS解析器对我来说太大而且功能太强大。我自己拼凑了一个,但是与评估相比,它的代码行很多,而且还不完美。编辑:是的,我想我特别想问的是,有人可以

javascript - 在隔离环境中使用 eval()

是否可以使用eval()评估JavaScript代码并确保该代码无法访问某些对象?示例:(function(window,location){eval('console.log(window,location)');})()上面的代码似乎没有通过引用直接访问window对象,因为它是undefined在那个范围内。但是,如果另一个对象全局存在并且它包含对window的引用,它将是可访问的。如果我添加到window,location可能包含对window的引用的任何其他对象或变量,评估的代码是否能够引用window目的?我正在尝试创建一个平台,用户应用程序可以通过js文件上传,并以权限的

javascript - 评估 JSON 字符串 - eval() 与 new Function()

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:jQueryuses(newFunction(“return”+data))();insteadofeval(data);toparseJSON,why?给定一个字符串表示一个有效的JSON字符串,这两种解析方法之间是否存在差异:varstr,obj;str='{"prop":"value"}';//method1:obj=eval('('+str+')');//method2:obj=(newFunction('return('+str+');'))();我注意到jQuery使用第二种方法来解析JSON字符

json - 将 MarkLogic EVAL REST 服务输出作为 JSON 返回

我正在制作一个演示,使用MarkLogic将从Outlook导出的电子邮件存储为XML,以便在我离开Outlook时仍可搜索和访问它们。我正在使用AngularJS前端调用使用Jersey以JAVA编写的自己的REST服务的nativeMarkLogicREST服务。MarkLogicSEARCHREST服务非常适合根据各种搜索条件取回对文档的引用列表,但我还想显示存储在找到的文档中的信息。我想避免多次REST调用并只取回所需的信息,因此我尝试使用EVALREST服务来运行xQuery。取回XML(在多部分/混合消息中)效果很好,但我似乎无法取而代之的是JSON,这会更方便,并且对于大