Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新加载页面时未计算JavaScript代码_Javascript_Android_Mobile_Scope - Fatal编程技术网

重新加载页面时未计算JavaScript代码

重新加载页面时未计算JavaScript代码,javascript,android,mobile,scope,Javascript,Android,Mobile,Scope,在移动网站中,我有一些JavaScript代码如下所示: <script type="text/javascript"> (function() { // function body omitted }()); </script> 及 至少要回答第二个问题,因为我一直看到人们使用这样的函数表达式 (function () {...}()) 有2(3)种类型的功能: 函数声明 函数表达式 函数语句 不能直接调用函数声明。但是作为表达式结果的函数可以被调用 立即调

在移动网站中,我有一些JavaScript代码如下所示:

<script type="text/javascript">
(function() {
  // function body omitted
}());
</script>


至少要回答第二个问题,因为我一直看到人们使用这样的函数表达式

(function () {...}())
有2(3)种类型的功能:

  • 函数声明
  • 函数表达式
  • 函数语句
不能直接调用函数声明。但是作为表达式结果的函数可以被调用

立即调用的语法正确的函数表达式如下所示

(function() {
  // function body omitted
})();
在这种情况下,函数通过将其括在括号中然后被调用而成为表达式。 然而

由于分组运算符
放在函数的周围,这会自动使其成为函数表达式(可调用),因此您可以通过将
()
直接放在函数体之后来调用函数

但这似乎误导了人们,就像

function() {
  // function body omitted
}();
也有效,但情况并非如此,因为缺少的分组运算符没有告诉解释器它是一个表达式。因此它一直是一个函数声明,不能直接调用


这是一个很好的例子,它解释了这三种类型。很好

你不应该在一个线程中提出两个不同的问题,你的第二个问题是关于闭包的,你应该在提问之前搜索一下。旁注:第二个例子是函数声明,括号应该导致语法错误,第一个是立即调用的函数e表达式
(function() {
  // function body omitted
})();
(function() {
  // function body omitted
}());
function() {
  // function body omitted
}();