Quick correction: it is not the same as eval.
It does not have access to the current scope. It is technically a fair bit safer when trying to run code from a string.
It may have access to the window object, however, so if something important is there, if can probably mess with that.