-1

let value = 'italic';
let varname = "fontSizeTitle";
eval(varname + "=" + value);

console.log(fontSizeTitle)

I have a big project in which i use eval() to assign dynamic variables to dynamic strings. The problem here is it throws an error saying italic is not defined but when if i want to use value as a string but again being dynamic? how do i tell eval() that i want the value to be dynamic. Sorry for not posting my project code but its the exact scenario in here too.

Areg
  • 1,414
  • 1
  • 19
  • 39

1 Answers1

3

Is italic a string literal as opposed to a variable name? If so, you must surround it with quotes in order to set it.

Your current eval statement does this:

fontSizeTitle = italic

This is possibly what it should be:

fontSizeTitle = 'italic'

The following code snippet will show this working:

let value = 'italic';
let varname = "fontSizeTitle";
let statement = varname + "='" + value + "'";
console.log(statement);
eval(statement );

console.log(fontSizeTitle)

I've added the statement itself to the console log so you can see what is actually being executed.

Martin
  • 16,093
  • 1
  • 29
  • 48