For something like the following:
"use strict";
let a = 1;
console.log(eval(`
a++;
let b=4;
`));
console.log(`a=${a}, b=${b}`);
// ReferenceError: b is not defined
Is it possible to do something where it prints undefined or something if the variable is not there instead of throwing an error? Something conceptually like:
console.log(`a=${a}, b=$?.{b}`)
The placeholder has to contain an expression and there doesn't seem to bean idiomatic way of using an undefined variable (likely due to parsing error) so I would go with a getter instead of using a raw variable.
For example before accessing b you can write
let getB = function () {
return (typeof b !== "undefined")? b :undefined;
}
Then in the template literal you can write ${getB}.