首页前端开发其他前端知识eval是es6中的方法吗,用来做什么的

eval是es6中的方法吗,用来做什么的

时间2024-03-26 01:18:03发布访客分类其他前端知识浏览812
导读:今天这篇给大家分享的知识是“eval是es6中的方法吗,用来做什么的”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“eval是es6中的方法吗,用来做什么的”文章能帮助大家解决问题。...
今天这篇给大家分享的知识是“eval是es6中的方法吗,用来做什么的”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“eval是es6中的方法吗,用来做什么的”文章能帮助大家解决问题。




eval不是es6中的方法;该方法是JavaScript中的,用于计算JavaScript字符串,并把字符串当做脚本代码来执行,如果传入的字符串是表达式则返回表达式求值结果,否则返回undefined,语法为“eval(string)”。

如何快速入门VUE3.0:进入学习

本教程操作环境:windows10系统、ECMAScript 6.0版本、Dell G3电脑。

eval不是es6中的方法

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。

eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,如果传入的字符串是表达式则返回表达式求值结果,否则返回 undefined 。

描述

  • 如果传入 eval() 的参数不是字符串,则会直接返回该参数。

  • 非严格模式下直接调用 eval() 时,里面使用 var 声明的变量和使用 function 声明的函数会修改当前词法作用域,里面使用 let 和 const 声明的变量不会修改当前词法作用域,但是会在当前创建新的词法作用域。

  • 非严格模式下间接引用 eval() 时,会直接运行在全局环境中,里面使用 var 声明的变量和使用 function 声明的函数会修改全局词法作用域,里面使用 let 和 const 声明的变量不会修改全局词法作用域,但是会在全局环境创建新的词法作用域。

  • 严格模式下直接调用的 eval() 时,会在当前创建一个新的独立的词法作用域。

  • 严格模式下间接引用的 eval() 时(只有在 eval() 内的字符串里面开启严格模式时,字符串才会以严格模式执行),会在全局环境创建一个新的独立的词法作用域。

  • 使用 window.eval() 等同于间接引用 eval() 。

  • eval() 中执行的代码只能调用 JS 解释器(Interpreter)来解释执行,无法被即时编译器(JIT Compiler)优化, eval() 中的执行的代码可能会导致 JS 引擎在已经生成的机器代码中进行变量查找和赋值,带来性能问题。

  • eval() 使用不当可能会导致里面执行的字符串容易遭受恶意修改,带来安全问题(比如 XSS 攻击)。

  • 使用 eval() 会干扰代码压缩工具的行为。代码压缩工具一般会将局部变量名重命名为更短的变量名(如 a 和 b 等),以便减小代码体积。当使用了 eval() 时,由于外部的局部变量可能会被 eval() 访问到,代码压缩工具便不会对可能会被 eval() 访问到的局部变量名进行压缩,会降低代码压缩率。

语法

eval(string)

示例如下:

!DOCTYPE html>
    
html>
    
head>
    
meta charset="utf-8">
    
title>
    123/title>
    
/head>
    
body>
    
script>
    
eval("x=10;
    y=20;
    document.write(x*y)");
    
document.write("br>
    " + eval("2+2"));
    
document.write("br>
    " + eval(x+17));
    
/script>
    
/body>
    
/html>
    

输出结果:


感谢各位的阅读,以上就是“eval是es6中的方法吗,用来做什么的”的内容了,通过以上内容的阐述,相信大家对eval是es6中的方法吗,用来做什么的已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

ES6

若转载请注明出处: eval是es6中的方法吗,用来做什么的
本文地址: https://pptw.com/jishu/653164.html
浅谈PHP的四个框架,选择PHP框架有啥好处? swoole锁的机制怎样理解,swoole_lock是如何实现?

游客 回复需填写必要信息