even if block scope was better, its not worth having three ways to declare a variable. Most JS programmers do not know about scope and they do not declare variables, but if they do, they more likely mean it to belong to the function, like in VBscript or PHP, rather then to the if statement.
Explaining why you should declare variables is hard. Now I also have to explain block scope, and angel brackets now makes a huge difference!
if(...) // use angel brackets
foo = 1; // declare variables
if(foo) ...