美文网首页
JavaScript 中有两个机制可以“欺骗”词法作用域:eva

JavaScript 中有两个机制可以“欺骗”词法作用域:eva

作者: 海贼王Lorrin | 来源:发表于2022-10-21 16:02 被阅读0次

非严格模式下可使用!!!

1、eval(‘代码块’);

function foo(str) {

//"use strict";

eval( str );

console.log( a ); // ReferenceError: a is not defined

}

foo( "var a = 2" );

2、with

var obj = {

a: 1,

b: 2,

c: 3

};

// 单调乏味的重复 "obj"

obj.a = 2;

obj.b = 3;

obj.c = 4;

// 简单的快捷方式

with (obj) {

a = 3;

b = 4;

c = 5;

}

不推荐使用 eval(..) 和 with 的原因是会被严格模式所影响(限

制)。with 被完全禁止,而在保留核心功能的前提下,间接或非安全地使用

eval(..) 也被禁止了。

相关文章

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

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

  • JavaScript 中有两个机制可以“欺骗”词法作用域:eva

    非严格模式下可使用!!! 1、eval(‘代码块’); function foo(str) { //"use st...

  • 2.词法作用域

    JavaScript的作用域模型采用的是词法作用域 词法阶段 查找 欺骗词法作用域 既然词法作用域完全由编写时来决...

  • JavaScript this 绑定规则

    JavaScript 中的作用域是词法作用域。而JavaScript中的 this 却更加类似于 动态作用域的机制...

  • 词法作用域

    我们知道JavaScript并不具有动态作用域,它只有词法作用域,什么是词法作用域? 一、 词法作用域 词法作用域...

  • 你不知道的 Javascript

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

  • 作用域

    静态作用域 (词法作用域) 和 动态作用域 下面的例子可以帮助理解 假设 JavaScript 采用 静态作用域,...

  • this-动态作用域?

    JavaScript中的作用域是词法作用域,但它的另一个重要机制 this 是动态作用域的表亲。this提供了一种...

  • 「JS」变量作用域

    作用域介绍静态作用域动态作用域 JavaScript 变量作用域词法环境组成创建结构关于词法环境的问题with 语...

  • <you don't know JS> 上卷

    this关键词是JavaScript之中最复杂的机制之一。 关于 this 和词法作用域的机制不同,this的指向...

网友评论

      本文标题:JavaScript 中有两个机制可以“欺骗”词法作用域:eva

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