美文网首页
Eval 、new Function 与 作用域之间不得不说的故

Eval 、new Function 与 作用域之间不得不说的故

作者: aae3ab7baf09 | 来源:发表于2016-10-08 09:27 被阅读61次

1.js编译器在词法分析阶段会优化性能,如果在子作用域中没有用到父作用域中的变量 他就不注入了,但是考虑到eval和with 他会取消这个优化 这也导致 eval 和 with一直被人诟病的性能缺陷, 但是new Function 他不会这么优化 new Function 的作用域是全局的。你想在new Function 中读取非全局作用域下的变量是不行的。

相关文章

  • Eval 、new Function 与 作用域之间不得不说的故

    1.js编译器在词法分析阶段会优化性能,如果在子作用域中没有用到父作用域中的变量 他就不注入了,但是考虑到eval...

  • new Function

    1、eval中的代码执行时的作用域为当前作用域。它可以访问到函数中的局部变量。*2、new Function中的代...

  • 关于eval与new Function

    由一道题目引发的思考:eval能访问上下文,new Function只能构建自己的一个私有作用域。 new Fun...

  • JS的作用域

    JS的作用域: 全局作用域、函数作用域、eval 作用域、块级作用域 全局作用域: 函数作用域: 结果截屏: 说...

  • eval作用,以及和new Function()的区别

    一、eval的特点 eval不容易调试。用chromeDev等调试工具无法打断点调试 性能问题,eval不可预测,...

  • eval和new Function

    eval和new Function都可以动态解析和执行字符串。但是它们对解析内容的运行环境判定不同。 eval中的...

  • eval() 和 new function()

    eval()和new function()的功能基本相似:将字符串解析成js可以看懂的语言,即将字符串当做代码来执...

  • 你不知道的 Javascript

    作用域 词法作用域:编译阶段确定(欺骗词法作用域 eval with) 块作用域 with try/catch l...

  • JavaScript函数_06 eval | with

    eval 函数 作用:把字符串转换为js的代码new Function("字符串"); //把字符串转换为js...

  • [ES6]1.1作用域

    作用域 全局作用域(global/window) 函数作用域/局部作用域(function) 块状作用域({}) ...

网友评论

      本文标题:Eval 、new Function 与 作用域之间不得不说的故

      本文链接:https://www.haomeiwen.com/subject/rkitettx.html