JavaScript-Garden icon indicating copy to clipboard operation
JavaScript-Garden copied to clipboard

Wrong output value written in Why Not to Use eval Section

Open divyanshu-rawat opened this issue 9 years ago • 4 comments

In Why Not to Use eval Section

It is already mentioned that eval only executes in the local scope when it is being called directly and when the name of the called function is actually eval.

So, Here we are not calling it directly so it will not change the value of Global variable number. Hence Global variable number will remain same i.e - 1


var number = 1;
function test() {
    var number = 2;
    var copyOfEval = eval;
    copyOfEval('number = 3');
    return number;
}
test(); // 2
number; // 3     (Here value of number will be 1 instead of 3)

Please Assign me this issue I want to contribute .

divyanshu-rawat avatar Jan 04 '17 19:01 divyanshu-rawat

I've just tested this in node v6.4.0 and number ends up as 3, as expected. What version of JS/node are you using?

peterjwest avatar Jan 04 '17 21:01 peterjwest

I am using node v7.3.0

divyanshu-rawat avatar Jan 04 '17 22:01 divyanshu-rawat

see !

output is 1

divyanshu-rawat avatar Jan 04 '17 22:01 divyanshu-rawat

Actually if I run this from a file, I get the same result. However running this in the node terminal or in Chrome produces the original result.

Javascript Garden doesn't technically cover node - and this seems to be a node feature.

peterjwest avatar Jan 04 '17 22:01 peterjwest