Table variables are Transaction neutral. They are variables and thus are not bound to a transaction. Temp tables behave same as normal tables and are bound by transactions.
declare @var table (id int, data varchar(20) )
create table #temp (id int, data varchar(20) )