JSFiddle - React, Tailwind, and code Playground
by Chuan Shao
JavaScript
console.log(eval("42 * 2"));//84
console.log(this.eval("42 + 7"));//49, eval is a function of global object
console.log(eval([1,2,3]));//[1, 2, 3]
console.log(typeof eval([1,2,3]));//object
console.log(eval("42 */ 2"));//SyntaxError
console.log(eval("42 * 2; 22 * 3;"));//66. eval returns the result of last expression/statement
console.log(eval("null.toString()"));//TypeError, exception in eval-ed code will be propagated outside eval().
//variable environment
var a = 108;
console.log(eval("function double(x){return x*2;} a = double(a)"));
console.log(a);//216
console.log(double(33));//66
function test(){
var s = "test";
eval("return s;");
}
test();//SyntaxError: return not in function
//local variable environment and global variable environment
var renamed = eval;
var x = "origin", y = "origin";
function f(){
var x = "new";
eval("x += 'Changed';");
return x;
}
function g(){
var y = "new";
renamed("y += 'Changed';");
return y;
}
console.log(f(), x);//newChanged origin
console.log(g(), y);//new originChanged