js代码是一段一段执行的,定义式函数被优先执行。看代码:
<script type="text/javascript">
var a =2;
//1.覆盖
function f2(){
alert(1)
}
f2();
function f2(){
alert(2);
}
f2();
</script>
<script type="text/javascript">
<!--
var a =2;
//2.不覆盖
function f2(){
alert(1)
}
f2();
</script>
<script>
function f2(){
alert(2);
}
f2();
</script>
//3 不覆盖
var f = function(){
alert(1);
}
f();
var f = function(){
alert(2);
}
f();
var f = function() {//4
var f = function() {
return 1;
}
return f();
};
function f() {
return 2;
}
document.write(f());
var f = function() {//5
function f() {
return 1;
}
return f();
};
function f() {
return 2;}
document.write(f());
var f = function() { 6// 括号内作为一段
function f() {
return 1;
<span style="white-space:pre"> </span>}
return f();
function f() {
return 2;
}
};
document.write(f());