函数的定义和调用
当使用函数的时候,必须有两个阶段:
【1】定义阶段
赋值式定义函数(函数表达式) var fun = function(){}
声明式定义函数 function fun(){}
赋值式定义函数和声明式定义函数的区别:
区别:调用函数的时候,调用位置的关系。
声明式定义的函数可以为任何位置调用。
赋值式定义的函数,只能再定义之后去调用
变量提升:
当使用赋值式定义函数的时候,会存在一个变量提升,把变量名提升到代码的最前面,但是并没有把赋值提升,如果在赋值之前调用,变量的值为undefined,不是一个函数
console.log(fun);//undefined
//fun(); //fun is not a function
fn();
function fn() {
console.log('声明式定义函数');
}
var fun = function () {
console.log('赋值式定义函数');
};
【2】调用阶段
主动调用: 函数名()
事件驱动调用: 元素.事件类型 = 函数
案例:
<button id="btn">点击</button>
<script>
var btn = document.getElementById('btn');
function fun() {
console.log('我是声明式定义函数');
}
var fn = function () {
console.log('我是赋值式定义函数');
};
btn.onclick = fn;
// fun();
// fn();
</script>