I think names should do the trick:
The names ["string"] list the names of characters that match the string.
Names [ "foo" ] {}, foo , { "foo" }.
, "" :
defined[str_] := Names[str] != {}
, , "7", 7 . , , NumberQ.
, Symbol, ( ) , .
[ "name" ] .
[] .
EDIT. , , , NameQ [ "name" ] , . , , , .