收藏
回答

问下大佬是先执行var还是先执行function呢?

比如
function example() { 
    function f() {return 1;}; 
    return f; 
    var f = function() {return 2;}; 
} 
var a = example(); 
alert(a()); 
  理解:
  先var a然后把example赋值给a,再执行。
   主要是这里 然后example里面,先var f,然后function f() {return 1} 即example执行为1
    还是function f() {return 1} 再var f,不太确定
  请指教!多谢
回答关注问题邀请回答
收藏

3 个回答

  • 睡前原谅一切
    睡前原谅一切
    2020-01-10

    console 执行下。

    2020-01-10
    有用
    回复 3
    • undefined
      undefined
      2020-01-10
      console直接出结果了  没过程的
      2020-01-10
      回复
    • 睡前原谅一切
      睡前原谅一切
      2020-01-10回复undefined
      直接断点是最方便的
      2020-01-10
      回复
    • undefined
      undefined
      2020-01-10
      。。。这个好像也不是断点就能测出来的
      2020-01-10
      回复
  • undefined
    undefined
    2020-01-10

    可能我的表述不太好,我主要想问的是 example函数里 变量提升 函数和定义都会提升。是先提升哪个?

    2020-01-10
    有用
    回复 2
    • 有一只狗的名字叫三木
      有一只狗的名字叫三木
      2020-01-10
      funtion提升在变量提升之上,无论声明的变量在function上下,只要变量声明时赋值,则最终变量生效,一句话,只要变量有值,优先级就高于变量。
      2020-01-10
      1
      回复
    • undefined
      undefined
      2020-01-10回复有一只狗的名字叫三木
      理解,多谢
      2020-01-10
      回复
  • 有一只狗的名字叫三木
    有一只狗的名字叫三木
    2020-01-10

    return f 不会再执行var f 了。代码有问题吧。

    简单来说,如果var声明并赋值会覆盖掉同名function。无论在什么位置

    2020-01-10
    有用
    回复 3
    • undefined
      undefined
      2020-01-10
      var f会执行的  只是没有赋值  我要问的是先执行定义var 还是函数function
      2020-01-10
      回复
    • 有一只狗的名字叫三木
      有一只狗的名字叫三木
      2020-01-10回复undefined
      是这样的,但是没有赋值,不会覆盖同名fn
      2020-01-10
      回复
    • 有一只狗的名字叫三木
      有一只狗的名字叫三木
      2020-01-10
      var声明的变量如果赋值就是执行var声明的。如果变量没赋值,执行同名fn
      2020-01-10
      回复
登录 后发表内容
问题标签