美文网首页
JS中的eval(..) 和with —— 你不知道的JavaS

JS中的eval(..) 和with —— 你不知道的JavaS

作者: HZS_7746 | 来源:发表于2017-12-21 15:51 被阅读0次

JavaScript 中有两个机制可以“欺骗”词法作用域:eval(..) 和with。前者可以对一段包

含一个或多个声明的“代码”字符串进行演算,并借此来修改已经存在的词法作用域(在

运行时)。后者本质上是通过将一个对象的引用当作作用域来处理,将对象的属性当作作

用域中的标识符来处理,从而创建了一个新的词法作用域(同样是在运行时)。

这两个机制的副作用是引擎无法在编译时对作用域查找进行优化,因为引擎只能谨慎地认

为这样的优化是无效的。使用这其中任何一个机制都将导致代码运行变慢。不要使用它们。

相关文章

  • JS中的eval(..) 和with —— 你不知道的JavaS

    JavaScript 中有两个机制可以“欺骗”词法作用域:eval(..) 和with。前者可以对一段包 含一个或...

  • eval介绍

    eval 的定义和用法 如果参数是表达式,eval()函数会执行表达式;如果参数是 js 语句,eval()函数会...

  • 关于js函数中this的指向的问题

    @(javascript)[JavaScript中this的指向] 关于js函数中this的指向的问题 javas...

  • 自制前端框架Day20.$apply和$eval的实现

    $eval是什么 $eval可以在scope的上下文环境里执行一段代码。JS中普通的eval函数可以传入一段字符串...

  • 爱奇艺获取sign

    准备 分析好eval的sign算法和pws加密js 一、总体代码流程 1、获取sdk2、eval sdk3、拼接变...

  • JS中eval()解析和为什么不要使用eval

    eval翻译:是evaluate,评估,评价的意思。eval的重点在于eval函数名赋值给变量之后,它的作用域可能...

  • 16.JavaScript之json

    string变json 1.用eval函数eval()自己产生一个string,当作js脚本,交由js引擎处理2....

  • js eval()

    eval(str) 计算字符串中的表达式例:str = “1+2” eval(str)=3如果str="[1,2...

  • eval() 函数

    语法: 作用:会把eval函数中的参数当成js代码来执行。 一般在js中解析响应的json数据的时候都是使用JSO...

  • 你不知道的 eval

    前言 eval() 是 JavaScript 中一个非常有用的函数,它可以一段代码字符串动态执行。然而各种编码规范...

网友评论

      本文标题:JS中的eval(..) 和with —— 你不知道的JavaS

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