window.eval()和eval()是有区别的

我心飞翔 分类:实例代码

虽然按照通常的理论,window对象的属性或者方法,是不是用window对象调用是都是一样的。

但是对于eval()方法来说确实是有很大区别。

下面就来介绍一下它的区别:

eval()所运行的代码是在它所在的作用域执行。

代码实例如下:

var func = function (){
  eval("var index=5");
  console.log(index);
}
func();
console.log(index)

从上面的代码可以看出,eval()所执行代码是在eval()所在作用域执行的。

window.eval()所运行的代码实在全局作用域执行的。

代码实例如下:

var func = function () {
  window.eval("var index=5");
  console.log(index);
}
func();
console.log(index)

上面的代码会输出两个5,说明window.eval()是在全局作用域下运行的。

在IE8和IE8以下浏览器中,window.eval()和eval()完全相同的,参阅javascript的eval()函数作用域简单介绍一章节

window.eval()和eval()是有区别的,这样的场景在实际项目中还是用的比较多的,关于window.eval()和eval()是有区别的就介绍到这了。

window.eval()和eval()是有区别的属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容