在公司实习的时候,发现公司项目中函数声明的方式各不相同,有的使用修饰符,有的不使用修饰符,今天来总结一下,js中函数声明的三种方式,以及是使用函数表达式声明函数时,加var和不加var的区别:e
1、函数声明语法
function sum(num1,num2){
return num1+num2;
}
这种方式声明的函数会在当前的作用域中,生命提前。
2、函数表达式
var sum = function(num1,num2){
return num1+num2;
}
在代码执行的时候,加载,函数生命不会提前。
3、使用Function构造函数定义
var sum = new Function("sum1","sum2","return num1+num2");
不推荐使用这种方式声明函数,这种语法会导致解析两次代码,(第一次是解析常规的ECMAScript代码,第二次是解析传入构造函数中的字符串,从而降低了效率);
还有一种比较奇葩的生命函数的方式:
sum = funciton(num1,num2){
return num1+num2;
}
这种方式声明的函数,会提升为全局变量,而得不到回收,永远占内存。