eval00(javascript中eval的用法)
本文目录
javascript中eval的用法
JavaScript eval() 函数
JavaScript 全局对象
定义和用法:
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
语法:
eval(string)
返回值:
通过计算 string 得到的值(如果有的话)。
说明:
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
抛出:
如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
如果非法调用 eval(),则抛出 EvalError 异常。
如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。
扩展资料:
调用eval函数的三种情况:
1、直接调用
直接调用时,eval函数相关的执行环境属性ThisBinding,LexicalEnvironment,VariableEnvironment的值如下:
a) ThisBinding是调用eval函数时,调用方执行环境的ThisBinding
b) LexicalEnvironment是调用eval函数时,调用方执行环境的LexicalEnvironment
c) VariableEnvironemnt是调用eval函数时,调用方执行环境的VariableEnvironment
2、间接调用
所谓间接调用,即将eval赋值给另一个变量后在调用
3、严格模式下的eval
在严格模式下,eval的LexicalEnvironment,VariableEnvironment指向属于eval自己的Lexcial Environment,而不是调用方的Lexical Environment,但是ThisBinding还是调用方的ThisBinding。
同时,在严格模式下如果eval直接调用,那么eval的Lexical Environment的outer指针指向调用方的Lexical Environment,否则,如果是间接调用,那么eval的Lexical Environment的outer指针指向全局环境的Lexical Environment。
参考资料来源:百度百科--eval()
eval解密
首先,把 js 复制到一个 html 文件中,然后通过浏览器打开再把 /**/这些注释的内容全部删除1)然后,把 eval 修改成 document.write,刷新一下,我们就得到了一个新的 eval然后把原来的 js 全部注释掉,把页面上显示出来的 js 复制到文件中,并把 eval 修改成 document.write这里需要注意的是 %3C这个符号,因为他是《,所以document.write会出错,我们需要手动把 %3C替换成《,这样得到的新的 js 才是正确的然后重复 1)一直到 不在产生eval这样就可以得到了加密前的 js 代码了当然,把最后一次得到的 eval 信息直接复制到最开始我贴的那个网址上进行解密,可以得到带格式的 js ,这样也方便我们阅读了
更多文章:
iphone一秒变身门禁卡(如何将iPhone手机变成门禁卡使用)
2024年9月18日 10:10
二手索尼笔记本电脑能卖多少钱(2012年买的索尼笔记本电脑当时买了六千多,现在想转手,大概能卖多少钱)
2024年10月16日 01:10
华为mate10跑分对比(华为mate10打王者荣耀与小米6对比流畅程度如何)
2024年9月24日 12:50
gtx2060显卡什么档次(rtx2060相当于gtx什么显卡)
2024年11月2日 05:50
好玩的手机游戏可联机(有什么适合和朋友一起联机玩的手机游戏吗)
2024年10月29日 10:30
iwatch价格走势(Apple iwatch什么时候上市 功能美国日本香港价格一览)
2024年7月2日 08:20