2-2函数进阶

函数的定义方式:

函数声明
函数表达式
new Function


fn1();//正常输出
// fn2();这个会报错
//我们在这里调用了这两个函数,fn1()可以正常输出,fn2()报错了
//因为在代码执行之前有预解析,使用函数声明方式定义的函数会被提升,而使用‘函数表达式’的方式不会被提升

1、函数声明
function fn1() {
    console.log("函数声明");
}

2、函数表达式
var fn2 = function () {
    console.log('函数表达式')
}

在if-else语句中,由于浏览器版本问题,如果使用函数声明的方式,有的浏览器会将函数进行解析,有的不能,所以我们如if-else语句中一般不使用函数声明的方法定义函数,而使用‘函数表达式’的方式定义

3、new function
//这种方式我们并不推荐,但是通过这种方式我们认识到了函数也是对象
var fn3 = new Function('var name = "小明"; console.log(name)');
fn3();//输出:小明   

你可能感兴趣的:(2-2函数进阶)