- 函数声明式
function 函数名() {
return 结果;
}
特点: 可在任何地方调用
- 函数表达式
var 函数名 = function () {
return 结果;
}
特点: 只能在声明之后才能用
- 实例化函数
var fn = new Function('console.log("真香!")');
函数声明式 和 2. 函数表达式 区别
(函数的提升): 在运行代码之前,浏览器(解析器)会先 提升代码的最前面
整个函数体都被提升,因此可以在任何地方都可以调用(变量的提升): 在运行代码之前,浏览器(解析器)会先将变量名提升代码的最前面
而提升的变量名并没有赋值,因此为undefined其本质特点是函数的提升与变量的提升
变量和函数同名,则函数权利更大
全局变量和局部变量
局部变量:
在其内边定义的变量成为局部变量
只能在内部访问
局部变量会提升至局部的最前面
全局变量:
在函数体外,整个执行环境为window下定义的变量成为全局变量
可在全局及局部均可访问到