最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

分析function前加运算符实现立即执行函数

来源:懂视网 责编:小采 时间:2020-11-27 20:24:14
文档

分析function前加运算符实现立即执行函数

分析function前加运算符实现立即执行函数:我们知道函数的调用方式通常是FunctionName()但如果我们尝试为一个定义函数末尾加上(),解析器是无法理解的。function msg(){ alert('message'); }();//解析器是无法理解的定义函数的调用方式应该是 msg()。想让函数立即执行可以将函数体部
推荐度:
导读分析function前加运算符实现立即执行函数:我们知道函数的调用方式通常是FunctionName()但如果我们尝试为一个定义函数末尾加上(),解析器是无法理解的。function msg(){ alert('message'); }();//解析器是无法理解的定义函数的调用方式应该是 msg()。想让函数立即执行可以将函数体部

我们知道函数的调用方式通常是FunctionName()

但如果我们尝试为一个“定义函数”末尾加上(),解析器是无法理解的。

function msg(){
 alert('message');
 }();//解析器是无法理解的

定义函数的调用方式应该是 msg()。

想让函数立即执行可以将函数体部分用()包裹起来。

这是因为,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。如下:

// 这么写会报错,因为这是一个函数定义:
function() {}()

// 常见的(多了一对括号),调用匿名函数:
(function() {})()

// 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()

! 只是其中一个运算符,而 + - || ~都有这样的功能。

用 ! 可能更多的是一个习惯问题,不同的运算符,性能是不同的。

效果等同于以下常用的两种立即执行方式:

(function() {})();
 // or 
(function() {}());

谢谢大家的阅读。

文档

分析function前加运算符实现立即执行函数

分析function前加运算符实现立即执行函数:我们知道函数的调用方式通常是FunctionName()但如果我们尝试为一个定义函数末尾加上(),解析器是无法理解的。function msg(){ alert('message'); }();//解析器是无法理解的定义函数的调用方式应该是 msg()。想让函数立即执行可以将函数体部
推荐度:
标签: 函数 分析 执行
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top