Я играл с eval
и заметил, что он может оценивать не-строки в Chrome, Firefox и Opera:
eval(Array) === Array; // true
eval(this) === this; // true
eval(4 * 3 / 2) === 6; // true
Это стандартное поведение? Это где-нибудь задокументировано? Я не могу найти упоминания о том, что eval
принимает что-либо кроме строкового аргумента.
Если это не стандартное поведение, может ли кто-нибудь определить хост-среду, в которой это не работает?