之前的疑惑,为什么定义了函数 add(),然后 var a=add() 会执行了函数

之前的疑惑,为什么定义了函数 add(),然后 var a=add() 会执行了函数

function add() {

document.write(1);

function add1(){

console.log(2);

}


}


var a=add();


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,关于同学的问题解答如下:

1、函数名本身后面加小括号就会自动执行,我们可以先不将其赋值给a看下效果:

http://img1.sycdn.imooc.com//climg/5dcb752609f5277005010359.jpg

界面显示:

http://img1.sycdn.imooc.com//climg/5dcb74d7093e972a00870042.jpg

因为add()就代表调用这个函数执行里面的代码,所以不管有没有赋值给a,界面都会显示1。

2、var a = add()是代表把add函数执行的结果赋值给a,我们可以打印输出一下:

http://img1.sycdn.imooc.com//climg/5dcb75810944b03206350368.jpg

控制台:

http://img1.sycdn.imooc.com//climg/5dcb75c2092acd6d02100072.jpg

可以发现a接收的是函数执行之后的返回值(输出undefined是因为函数在没有return的情况下默认输出undefined)。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • weibo_我是LUFFCIER_0 提问者 #1
    但是我 用var a = add()形式,界面却打印了 1
    2019-11-13 21:16:19
  • 同学你好,老师在第一次回答的时候已经说过了哦,右边的add()就代表调用这个函数执行里面的代码即document.write(1),只要执行add函数,界面就会打印1。所以界面打印1是add函数执行的结果,不管有没有赋值给a,界面都会显示1。 建议同学再复习一下函数的知识哦。 如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
    2019-11-14 09:25:55
  • 同学你好,老师在第一次回答的时候已经说过了哦,右边的add()就代表调用这个函数执行里面的代码即document.write(1),只要执行add函数,界面就会打印1。所以界面打印1是add函数执行的结果,不管有没有赋值给a,界面都会显示1。 建议同学再复习一下函数的知识哦。 如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
    2019-11-14 09:26:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师