Второй фрагмент кода лучше, потому что он обеспечивает более многократное повторное использование кода и низкую связь между вашей переменной и функциями. Вместо первого фрагмента кода вы также можете использовать приведенный ниже код, но вы сами избежали этого, потому что это не очень хороший подход. Что касается производительности, считается, что первый код лучше, потому что вы не передаете какой-либо параметр своей функции бара, и всякий раз, когда вы передаете параметр функции, он потребляет процессорный цикл и ресурс.
var x=10;
.....
function foo(){
bar();
function bar(){
var y = x + 1;
}
}