最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript全局函数eval定义、用法和副作用等实例详解

来源:懂视网 责编:小采 时间:2020-11-27 20:15:12
文档

JavaScript全局函数eval定义、用法和副作用等实例详解

JavaScript全局函数eval定义、用法和副作用等实例详解:eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串var result = eval('3+2'); console.log(result,typeof result);//5 'number'用法 eval()只有一个参数,如果传入的参
推荐度:
导读JavaScript全局函数eval定义、用法和副作用等实例详解:eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串var result = eval('3+2'); console.log(result,typeof result);//5 'number'用法 eval()只有一个参数,如果传入的参

eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串

用法

  eval()只有一个参数,如果传入的参数不是字符串,它直接返回这个参数。如果参数是字符串,它会把字符串当成javascript代码进行编译。如果编译失败则抛出一个语法错误(syntaxError)异常。如果编译成功,则开始执行这段代码,并返回字符串中的最后一个表达式或语句的值,如果最后一个表达式或语句没有值,则最终返回undefined。如果字符串抛出一个异常,这个异常将把该调用传递给eval()

作用域

eval()使用了调用它的变量作用域环境。也就是说,它查找变量的值和定义新变量和函数的操作和局部作用域中的代码完全一样

别名

当通过别名调用时,eval()会将其字符串当做顶层的全局代码来执行。执行的代码可能会定义新的全局变量和全局函数,或者给全局变量赋值,但却不能使用或修改函数中的局部变量

  [注意]IE8-浏览器通过别名调用eval()和正常调用eval()的结果相同

副作用

  javascript解释器进行了大量的代码分析和优化。而eval()的问题在于,用于动态执行的代码通常不能分析,于是解释器也无法对其进行优化,这会导致性能下降

  与eval()类似的有setTimeout()、setInterval()、new Function()等,这些函数都可以以字符串作为参数,在程序运行时动态执行。这种执行机制带来的好处无法抵消其性能上的损失,所以应该尽量避免使用

严格模式

由于eval()函数过于强大,严格模式对其进行了严格的限制

【1】不能通过eval()函数来创建变量或函数,但可以查询和更改其值

【2】禁止使用eval作为标识符

文档

JavaScript全局函数eval定义、用法和副作用等实例详解

JavaScript全局函数eval定义、用法和副作用等实例详解:eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串var result = eval('3+2'); console.log(result,typeof result);//5 'number'用法 eval()只有一个参数,如果传入的参
推荐度:
标签: 使用 作用 用法
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top