浅谈JavaScript之function用括号包起来
2024-08-27 15:51:04
(function a(){}) (命名函数表达式)会返回这个函数(不会执行),但是在括号外面无法调用该函数,需要一个变量接收这个函数,var fun = (function a(){}),一般这个用在递归上,比如
var fact = (function f(num){
if(num === 1 )
return 1;
else
return num * f(num - 1);
})
1.function a(){}(函数声明)返回undefined(不会执行),仅仅是函数声明(声明提前)
2.var res = function a(){}() (函数表达式),立即执行该函数,必须使用一个变量接收返回值,否则报错。
3.(function a(){})() (函数表达式),立即执行该函数,不必须使用变量接收。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script>
//1.函数声明,不会执行。
function a() {
alert("函数a");
} //2.函数表达式,立即执行该函数,必须使用一个变量接收返回值,否则报错。
var res = function b() {
alert("函数b");;
}(); //3.函数表达式,立即执行该函数,不必须使用变量接收。
(function c() {
alert("函数c")
})();
</script>
</head>
<body>
</body>
</html>
总结
以上不同结果出现的原因是因为函数表达式和函数声明的区别。
最新文章
- MyBatis学习总结(五)——实现关联表查询(转载)
- Mac 下用IDEA时maven,ant打包 (mr 入库hbase)
- 在IOS输入框中 键盘上显示“搜索”
- 演练:使用Xamarin.Forms开发产品介绍性质的应用(VB版)
- CreateJS第0章- Canvas基础
- (转)iOS7界面设计规范(5) - UI基础 - 导航
- SEL数据类型,@selector的用法,以及调用SEL
- 从async await 报错Unexpected identifier 谈谈对上下文的理解
- Unity UGUI实现图文混排
- django(一)验证码
- XML文件处理
- C# 全文搜索Lucene
- 《DSP using MATLAB》Problem 3.18
- php模块组成
- java第八天
- python模块之PIL模块(生成随机验证码图片)
- 生产者消费者JAVA实现
- MySQL 根据身份证查找年龄段
- [C++] the pointer array &; the array&#39;s pointer
- libsvm 用在 婚介数据集中 预测 用户配对