Как уже упоминалось, eval
выполнит любой допустимый код JavaScript. Таким образом, следующее может вызвать предупреждение:
var jsObject = eval("alert('blah')");
По сути, вы доверяете любым данным из данного источника, что в целом небезопасно. Злоумышленник может воспользоваться преимуществами eval и выполнить вредоносный JavaScript.
JSON.parse
, однако, вернется успешно только в том случае, если переданная строка является допустимой JSON:
// gives "SyntaxError: JSON.parse"
var jsObject = JSON.parse("alert('blah')");
Таким образом, он не выполняет только то, что ему дано, как eval
.