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 ,这样也方便我们阅读了
更多文章:
google chrome安卓版下载(中国什么手机可以下载谷歌浏览器)
2024年7月6日 04:10
惠普m1005什么时候停产的(惠普10050打印机是哪年生产的)
2024年11月17日 13:30
oppor11s和oppor11有什么区别(R11和R11s有什么区别)
2024年12月1日 07:20
y400怎么进入bios设置界面(联想y400怎么打开bios)
2024年12月1日 02:00
夏新n6评测(天语G86和夏新N6哪个好总性价比,和导航性能的高低谁更准确)
2024年4月2日 22:10
苹果iphone3gs最合适的系统(iphone3gs有锁,能刷哪个版本的系统)
2024年10月20日 22:00
华为15999元的手机(全球首款支持数字人民币硬件钱包的智能手机 华为Mate40系列手机正式开售)
2024年5月8日 21:00
酷派9190lc00是什么型号(酷派手机9190L电信版怎么样)
2024年5月11日 22:20
m73准系统支持哪些cpu(am3主板支持的cpu都有哪些)
2024年5月14日 16:50