当前日期:2020年11月24日 星期二
Hi 你好,欢迎访问!登录
搜索 导航

豆芽笔记-电商运营、电商基础知识的独立个人博客!

当前位置:首页 - 学习进阶 - WEB前端 - 正文
阅读模式

JS函数调用带括号与不带括号的区别

2018-06-11 | WEB前端 | 欧阳七仔 | 1884°c

        说好的每周写一篇关于web前端学习的文章,执行过后才发现,并不是那么容易的事情。由此,就更加的景仰那些持续输出技术文章的大牛们。保证持续输出,有两个必要的条件:

1、本身技术知识过硬;

2、要有精力和耐心整理一篇技术文章,让不同层次的人们都能够引起共鸣。这样一来,整理一篇文章其实是相当费精力的事情。

        无可奈何,如今自己两条都不占。技术知识本身,尚处于学习阶段,需要大量的输血。

        进入正题:JS函数调用带括号与不带括号的区别?

        这个问题,从本月初开始进入DOM学习以来就一直困惑着,当时还记录在了难点本上。今晚再次遇到,感觉随着学习的推进,已经到了不解决不行的地步。于是,自己就靠着已经有的知识,进行了一个简单测试(测试代码如下):

	<script type="text/javascript">
		window.onload=function(){
			//函数调用有无括号的测试
			function abc(){
				alert("我是关于函数调用有无括号区别的测试01");
			}
			alert(abc);
			abc();
			setTimeout(abc,3000);//不带括号的时候会进行延时执行;
			//setTimeout(abc(),3000);//带括号的时候会直接执行;
		}	
	</script>

        方式很简单,通过alert方法弹出不带括号的函数形式,然后带括号自然调用函数的形式。

测试结果:

1、不带括号,弹出函数体内容;

不带括号.png

2、带括号,弹出函数执行内容;

带括号.png

结果验证:(利用定时器setTimeout())

setTimeout(abc,3000);//不带括号的时候会进行延时执行;

不带括号的时候,同样会先将函数体内容载入,但是不执行,等待3s的时间过后再执行函数;

setTimeout(abc(),3000);//带括号的时候会直接执行;

带括号的时候,则立即执行函数代码内容,从而导致setTimeout()定时器失效;

区别总结:

函数带括号,会直接立即执行函数代码内容;

不带括号,则相当于一个指针,会指向函数,但是不执行函数体代码内容,当达到函数执行条件的时候,再执行函数代码。

版权声明

凡注明为豆芽笔记原创文章,转载请注明出处,谢谢合作!如果文章中图片、文字侵犯到您的权益,请留言联系博主进行处理或者删除!

分享:
如果您觉得这篇文章对您有帮助,请分享到朋友圈或者添加到收藏夹哦!
QR:  JS函数调用带括号与不带括号的区别

扫一扫,用手机打开吧

TAGS:未定义标签

共0条评论

暂时没有评论,你可以来抢个沙发!

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

用户登录×
用户名:
密    码: