草庐IT

class-eval

全部标签

javascript - Evil Eval 的替代品——关系运算符

作为输入验证的一种形式,我需要强制将像'9>6'这样的字符串计算为bool值。除了评估字符串之外,我似乎找不到解决方法。我一直听说eval的邪恶(特别是因为我正在验证表单输入),关于它可以评估任何脚本和性能问题的事实。但是....mycase有没有其他选择?(处理关系运算符)?vararr=['2'];varcheck=function(a){returnarr.every(function(x){varstring='';string+=a+x;try{returneval(string);}catch(e){returnfalse;}});};console.log(check('

javascript - 你如何在 JavaScript 中进行继承而不在子类的所有实例之间共享父类(super class)的同一个实例?

我注意到每个关于如何进行JavaScript继承的教程都是这样做的:SubClass.prototype=newSuperClass();但这将创建父类(superclass)的单个实例并在子类的所有实例之间共享它。问题是我想将参数传递给父类(superclass)构造函数,这些构造函数源自传递给子类的参数。在Java中,这将像这样完成:classSubClassextendsSuperClass{publicSubClass(Strings){super(s);}}我试过这样做:functionSubClass(args){this.constructor.prototype=new

javascript - eval 和 setTimeout 执行字符串代码的区别

我知道eval和setTimeout都可以接受字符串作为(1st)参数,而且我知道我最好不要使用它。我只是好奇为什么会有区别:!function(){varfoo=123;eval("alert(foo)");}();!function(){varfoo=123;setTimeout("alert(foo)",0);}();第一个可以,第二个会报错:fooisnotdefined他们是如何在幕后执行的? 最佳答案 参见referenceofsetTimeoutonMDN.Stringliteralsareevaluatedinthe

javascript - 如何访问子类中 getter 的父类(super class)值?

在派生类中访问getter的super值似乎不起作用:classFoo{private_message:string="Hello,";publicgetMessage():string{returnthis._message;}}classBarextendsFoo{publicgetMessage():string{returnsuper.Message+"World";}}varsnafu:Bar=newBar();document.write(snafu.Message);//Expected:"Hello,World"//Actual:"undefinedWorld"如何正确

javascript - JSON.parse() 在内部使用 eval() 吗?

这个问题在这里已经有了答案:WhatisJSON.parsewrittenin/Isitopensource?(4个答案)关闭9年前。现代浏览器中的JSON.parse是否在内部使用eval()来评估和执行动态代码?因为我一直在查看DouglasCrockford的JSON库。它还在使用parse()时使用eval(),但在实际评估之前进行了预处理。如:-防止代码中出现Unicode字符。代码显示恶意。支持JSON.parse的现代浏览器是本地执行此操作还是遵循其他协议(protocol)?

javascript - 如何在没有 eval 的情况下用 javascript 编写计算器

所以,我到处搜索,但找不到这个问题的答案。我已经尝试了大约三次,并通过基本上将输入作为字符串存储在数组中,解析数字,然后打开运算符来计算整数,从而得到了一个基本的,但我有一个真的很难弄清楚链接逻辑。有没有人有什么建议?甚至可能只是伪代码?我真的不想使用eval。非常感谢 最佳答案 对于只有5个运算符(^、*、/、+、-)且没有括号的简单计算器,您可以这样做。首先,将字符串转换为数字和运算符的数组很方便。然后,我们遍历数组,按优先顺序查找每个运算符,并将运算符应用于它前后的数字。functiontokenize(s){//---Par

Javascript eval 别名

javascript是否允许使用别名eval?以下代码的第一部分行为异常(显示1、1),但第二部分没有(显示1、2)。对ECMA脚本或mozilla文档的引用会有所帮助,但我找不到。(function(){eval('vartestVar=1');alert(testVar);vareval2=eval;eval2('vartestVar=2');alert(testVar);})();(function(){eval('vartestVar=1');alert(testVar);eval('vartestVar=2');alert(testVar);})();

javascript - CLASS 中的自定义事件

我需要从CLASS启动自定义事件。我知道用DOM对象和jquery做这个,使用triggerHandler,比如$(object)..triggerHandler("inputChange",{param:X});问题是当我用一个类尝试这个时,像这样:varMyClass=(function(){varstatic_var=1;varMyClass=function(){varprivateVar;varprivateFn=function(){alert('Imprivate!');};this.someProperty=5;this.someFunction=function(){

javascript - 如何检查某些东西是否在 ng-class 的数组中

我想做这样的事情:varlist=[1,2,3,4,5]if(2inlist){returntrue}来自ng-class,所以我尝试了:ng-class="this.idinlist?'class-1':'class-2'">但是没有用,抛出错误SyntaxError:Token'in'isanunexpectedtokenat... 最佳答案 对于数组,您将使用indexOf,而不是用于对象的inif(list.indexOf(this.id)!==-1){...}所以ng-class="{'class-1':list.inde

javascript - 解析大量数据 (5Mb) : eval or json? 的速度更快

我想通过ajax获取数据对象的集合,解析成JS数据。目前我有两个选择:-服务器返回有效的javascript代码,然后我对其进行评估。-服务器返回JSON对象,然后我评估json对象Firefox中最快的是什么?(我只关心“解析”性能,不关心服务器或数据传输) 最佳答案 看看theresultsVinylFoxcameup当他在野外测试JSON解码时。native功能在所有浏览器中表现最佳。 关于javascript-解析大量数据(5Mb):evalorjson?的速度更快,我们在Sta