I don’t know if it is intentional or documented, but the empty tuple () seems to work as a “non-variable”. For example, for () in 1:n will work, and make it clear that you will not use the iteration index.
(Similarly, ((), x) = foo()` can be a way of expressing that you only care about the second element of a returned tuple.)
The underscore _ is probably a good choice, as it’s actually meant to be used in Julia as a “don’t care” variable. In fact, as of Julia 1.0 it’s illegal to read from _ (you can only assign to it), so the compiler is free to ignore anything you assign to it, opening up additional optimization possibilities.
julia> _, x = (1, 2)
(1, 2)
julia> x
2
julia> y = _
ERROR: syntax: all-underscore identifier used as rvalue