Temporary Tables are physically created in the tempdb database. These tables act as the normal table and also can have constraints, index like normal tables. Table Variable acts like a variable and exists for a particular batch of query execution. It gets dropped once it comes out of batch.
Table Variable will exist till scope of transaction just like any other variables in SQL Server. Temporary Table exists for the scope of current connection. Both valid in the scopes unless executed DROP statement explicitly.