Why won't julia ERROR if a variable is not defined when scheduling?

I come up with these tests to back that statement

function main()
    v = Function[]
    for i = 10:10:20
        for j = i+3:i+4
            push!(v, () -> println("I'm ", j))
            v[end]()
            j = (i)j # modify!
            v[end]()
        end
    end
    println("---see what we got---")
    map(x -> x(), v)
end
main();

function main()
    v = Function[]
    for i = 10:10:20
        for outer j = i+3:i+4
            push!(v, () -> println("I'm ", j))
            v[end]()
        end
        local j = 6i
    end
    j = -9 # irrelevant
    println("---see what we got---")
    map(x -> x(), v)
end
main();

To avoid unintended mutation, do

Update my knowledge here.