JS中创建函数的方式一共有三种,而在日常的实战开发中,常用的方式一共分为两种:
1、函数声明
function sum1(n1,n2){
return n1+n2;
};
2、函数表达式,又称函数字面量
var sum2=function(n1,n2){
return n1+n2;
};
两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行。
自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,且立即自动执行。
(function(n1,n2){
console.log (n1+n2)
})(1,3);//4
另外几种自执行函数:
//可用来传参
(function(x,y){
console.log(x+y);
})(2,3);
//带返回值
var sum=(function(x,y){
return x+y;
})(2,3);
console.log(sum);
~function(){
var name='~'
console.log(name);
}();
!function(){
var name='!'
console.log(name);
}();
;(function(){
var name=';'
console.log(name);
})();
-function(){
var name='-'
console.log(name);
}();
//逗号运算符
1,function(){
var name=',';
console.log(name);
}();
//异或
1^function(){
var name='^';
console.log(name);
}();
//比较运算符
1>function(){
var name='>';
console.log(name);
}();
~+-!(function(){
var name='~+-!';
console.log(name);
})();
~!(function(){
var name='~!';
console.log(name);
})();
(function(){
var name='call';
console.log(name);
}).call();
(function(){
var name='apply';
console.log(name);
}).apply();