JavaScript中eval()函数用法详解
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。
语法
eval(string)
参数 | 描述 |
---|---|
string | 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
eval()函数用法详解:
此函数可能使用的频率并不是太高,在某些情况下具有很大的作用,狼蚁网站SEO优化就介绍一下eval()函数的用法。
此函数可以接受一个字符串str作为参数,并把此str当做一段javascript代码去执行,如果str执行结果是一个值则返回此值,否则返回undefined。如果参数不是一个字符串,则直接返回该参数,实例如下:
eval("var a=1");//声明一个变量a并赋值1。 eval("2+3");//执行加运算,并返回运算值。 eval("mytest()");//执行mytest()函数。 eval("{b:2}");//声明一个对象。
在以上代码特别注意的是,一个语句是声明了一个对象,如果想返回此对象,则需要在对象外面再嵌套一层小括号,如下:
eval("({b:2})");
以上内容简单介绍了eval()函数的用法,比较容易理解。此函数最让人感到困惑的是关于它的作用域问题,狼蚁网站SEO优化就结合实例来介绍一下相关内容,先看一段代码实例:
function a(){ eval("var x=1"); console.log(x); } a(); console.log(x);
在上面的代码中,第一个alert()函数能够弹出1,而第二个会因为x未定义而报错。
由以上表现可以得出,eval()函数并不会创建一个新的作用域,并且它的作用域就是它所在的作用域。这在所有主流浏览器都是如此,有时候需要将eval()函数的作用域设置为全局,可以将eval()在全局作用域中使用,往往实际应用中,需要在局部作用域使用具有全局作用域的此函数,这个时候可以用window.eval()的方式实现,例如以上代码可以改造如下:
function a(){ window.eval("var x=1"); console.log(x); } a(); console.log(x);
在上面的代码中,两个alert()语句都能够正常弹出1。此中方式在标准浏览器中是可以的,在IE8和IE8以下浏览器中的表现依然和eval()一样,作用域是它们所在的作用域。这个时候可以使用IE浏览器独有的window.execScript()解决IE8和IE8浏览器的问题。为了实现兼容所有主流浏览器,把代码改造如下:
function a(){ if(window.execScript){ window.execScript("var x=1"); } else{ window.eval("var x=1"); } console.log(x); } a(); console.log(x);
如果浏览器支持window.execScript(),则使用此函数,不支持则使用window.eval(),这样就可以解决IE8和IE8以下浏览器的问题。
以上内容是长沙网络推广给大家分享的JavaScript中eval()函数用法详解,希望大家喜欢。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程