1、函数声明
//函数声明
fun1();
function fun1() {
console.log("1");
}
2、函数表达式
//函数表达式
let fun2 = function () {
console.log("2");
}
fun2();
函数声明和函数表达式的区别:
- 函数声明会将函数提升到最前面(即使你写代码的时候,代码在最后才写这个函数),成为全局函数;
- 函数声明要指定函数名,而表达式不用,可以作为匿名函数使用;
3、立即执行函数(IIFE)
//立即执行函数
(function fun3() {
console.log("3");
})()
作用:立即执行函数会形成一个单独的作用域,我们可以封装一些临时变量或者局部变量,避免污染全局变量;
使用场景:
- 代码在页面加载完成之后,不得不执行一些设置工作,比如事件处理器,创建对象等等;
- 所有的这些工作只需要执行一次,比如只需要显示一个时间;
- 需要一些临时的变量,但是初始化过程之后,就再也不会被用到,我们可以用立即执行函数,去将我们所有的代码包裹在它的局部作用域中,不会让任何变量泄漏成全局变量
4、构造函数
//构造函数
function Fun(name,age) {
this.name=name;
this.age=age
}
const obj=new Fun("张三",16);
console.log(obj);