JavaScript之eval函数

定义:eval函数可计算某个字符串,并执行其中的JavaScript代码
语法:eval(string):string是必须的,要计算的字符串,其中含有要计算的JavaScript表达式或要执行的语句,返回通过计算string的值
注意点:覆盖eval属性或者将eval()方法赋予另一个属性,并通过该属性调用它,则ECMAScript实现允许抛出一个EvalError异常

以上是W3School中对eval函数的解释,在之前我使用eval主要是在获取后台传到前台的数据之后将json string转为js对象,后来使用JSON.parse(JSON对象解析),便再也没有接触eval,也就没有去深究eval的原理与作用。昨天学习执行上下文的时候,在汤姆大叔的博客中发现了eval不一样的一面。

eval有个概念:调用上下文。它使用了调用它的变量作用于环境,如果一个函数定义了局部变量x,然后调用了eval(“x”),将会返回局部变量的值,如果调eval(“x=1”),会改变局部变量的值,同样它可以用来声明一个新的局部变量,声明一个局部函数。

eval不在函数内部,调用上下文后,会把变量放在全局上下文中;
eval在函数内部,调用上下文后,会把变量放在局部上下文中,而这个局部上下文会随着函数退出而销毁。

猜你喜欢

转载自blog.csdn.net/zn740395858/article/details/70312259