JavaScript立即执行函数,自调用函数,还有其他的叫法,但目的就是减少资源占用,减少变量混淆等效用。但有几处用起来一直特别别扭。不合理归不合理,但它的确能执行,立即执行函数可以取名,但目前如下的方式意义都不大,采用匿名方式。

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript立即执行函数</h1>
<p>方式1:(function(){})(),这种方式jquery也在用,本人倾向使用这种。</p>
<p>方式2:(function(){}()),这种居然w3c给的标准,毫无逻辑可言,但各大浏览器是支持的</p>
<p ></p>
<p ></p>
<p ></p>
<script>
(function () {
  document.getElementById("demo1").innerHTML = "方式1:表达式+()";
})();
(function () {
  document.getElementById("demo2").innerHTML = "方式2:(函数声明+())";
}());
var printP1=function () {
  document.getElementById("demo3").innerHTML = "var 变量名=函数声明 +() 可以执行,属于赋值表达式+(),但如果是函数声明+()则不能执行";
}();
</script>
</body>
</html>

执行结果:

Javascript立即执行函数

方式1:(function(){})(),这种方式jquery也在用,本人倾向使用这种。

方式2:(function(){}()),这种居然w3c给的标准,毫无逻辑可言,但各大浏览器是支持的

方式1:表达式+()

方式2:(函数声明+())

var 变量名=函数声明 +() 可以执行,属于赋值表达式+(),但如果是函数声明+()则不能执行

<!DOCTYPE html>
<html>
<body>
<h1>将函数声明变成表达式的几种方式</h1>
<p ></p>
<p ></p>
<p ></p>
<p ></p>
<p ></p>
<p ></p>
<p ></p>
<script>
(function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用()将函数声明变成表达式,然后+执行()";
})('demo1','方式1:');
! function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用取非!将函数声明变成表达式,然后+执行()";
}('demo2','方式2:');
+ function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用+将函数声明变成表达式,然后+执行()";
}('demo3','方式3:');
- function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用-将函数声明变成表达式,然后+执行()";
}('demo4','方式4:');
var printP1=function () {
  document.getElementById("demo5").innerHTML = "方式5:var 变量名=函数声明 +() 可以执行,属于赋值表达式+(),但如果是函数声明+()则不能执行";
}();
a=1 && function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用&&将函数声明变成表达式,然后+执行()";
}('demo6','方式6:');
a=0 || function (sid,s) {
  document.getElementById(sid).innerHTML =s + "使用||将函数声明变成表达式,然后+执行()";
}('demo7','方式7:');
</script>
</body>
</html>

将函数声明变成表达式的几种方式

方式1:使用()将函数声明变成表达式,然后+执行()

方式2:使用取非!将函数声明变成表达式,然后+执行()

方式3:使用+将函数声明变成表达式,然后+执行()

方式4:使用-将函数声明变成表达式,然后+执行()

方式5:var 变量名=函数声明 +() 可以执行,属于赋值表达式+(),但如果是函数声明+()则不能执行

方式6:使用&&将函数声明变成表达式,然后+执行()

方式7:使用||将函数声明变成表达式,然后+执行()