mikello,
Неправильно. Уберите var f=0; в ready или поставьте в начало - и undefined исчезнет.
Дело в том, что в ready вы заново переопределяете переменную, но после использования.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>$(document).ready(function()
{
console.log(f)
})
var f=1;
console.log(f)
</script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>$(document).ready(function()
{
var f=0;
console.log(f)
})
var f=1;
console.log(f)
</script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>$(document).ready(function()
{
f=0;
console.log(f)
})
var f=1;
console.log(f)
</script>