1、代码块
- 指的的是有标签分割的代码段。
例如:
<script type="text/javascript">
alert("这是代码块一");
</script>
<script type="text/javascript">
alert("这是代码块二");
</script>
- 代码块之间相互独立,变量和方法共享,其中一个代码块出现问题不影响另一个代码的运行。
2、声明式函数与赋值式函数
<script type="text/javascript">
function Fn(){ //声明式函数
}
var Fn = function(){ //赋值式函数
}
</script>
$\color{#FF00FF}{在JS的预编译期,声明式函数会先被提取出来,然后才按照顺序执行js代码。}$
3、预编译期与执行期
- 预编译期js会对所有声明比那里和函数(仅限声明式函数)进行处理,变量只是声明不会进行初始化以及赋值操作。
- 同名函数后者会覆盖前者。
<script type="text/javascript">
Fn(); //执行结果:"执行了声明式函数",在预编译期声明函数及被处理了,所以即使Fn()调用函数放在声明函数前也能执行。
function Fn(){ //声明式函数
alert("执行了声明式函数");
}
var Fn = function(){ //赋值式函数
alert("执行了赋值式函数");
}
</script>