Как объявить переменную через eval / new Function?

256
26 августа 2017, 02:20

Столкнулся с такой проблемой, что переменные, объявленные в eval, не видны при следующем вызове eval. Что можно придумать? Пытаюсь сделать js REPL на js.

// Вот так работает -  
console.log(eval(` 
  let t = 1; 
  ++t; 
`)); // > 2 
 
 
// А вот так уже нет - 
eval('let t = 1;'); 
try{ 
    eval('++t;'); // > t is not defined! 
}catch(e){console.error(e)}

Answer 1

eval('let a = 1;'); 
eval('var b = 1;'); 
 
console.log(typeof a); 
console.log(typeof b); 
 
{let c = 1;} 
let d = 1; 
 
console.log(typeof c); 
console.log(typeof d); 
 
let e = {}; 
eval('e.a = 1;'); 
console.log(e);

READ ALSO
Как получить div с классом Test через ajax? [требует правки]

Как получить div с классом Test через ajax? [требует правки]

Как получить div с классом Test через ajax?

219
Счетчик на JS. Поясните как работает

Счетчик на JS. Поясните как работает

Всем приветНашел в интернете скрипт, код которого ниже

338
Как тестировать часть кода через Mocha.js?

Как тестировать часть кода через Mocha.js?

Вникаю в js и тестирование, возник вопросЕсть скрипт с разными функциями - script

311