Native js knowledge points

#eval takes a string and treats its contents as if it were originally written code.

function foo(str){
    "use strict";
    eval(str);
    console.log(a);//3

}
foo("var a = 3;");

 

But in strict mode, eval adds a scope by itself. The result is as follows:

function foo(str){
    "use strict";
    eval(str);
    console.log(a);//Uncaught ReferenceError: a is not defined

}
foo("var a = 3;");

 

#XXXXXXXXXXXXXXXXXXX。

XXXXXXXXXXXXXXX
    XXXXXXXXXXXXXX
    XXXXXXXXXX
   XXXXXXXXX

XXXXXXXXX

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325328953&siteId=291194637