Не эквивалентен. Код ниже проверит - существует ли currentTable. if лишён смысла, потому что currentTable объявлен и существует:
local currentTable = {}
if currentTable then
Код ниже пройдёт элементы currentTable по порядку и посчитает их количество.
local currentTable = {}
if #currentTable ~= 0 then
В случае:
local a = "name"
local currentTable = {a="eman"}
if #currentTable ~= 0 then
if снова лишён смысла, потому что первым элементом таблицы currentTable будет элемент name в значении "eman". Считать нечего, счётчик элементов #currentTable покажет 0, потому что currentTable[1] = nil.
Проверку реализовал так:
function IsEmpty(t)
if not t then
return true
end
for _, _ in pairs(t) do
return false
end
return true
end
local currentTable = {}
if not IsEmpty(currentTable) then