每天一题之js执行顺序

var foo = function(x,y){
  return x-y
}
function foo(x,y){
  return x+y
}

var num = foo(1,2)
console.log(num)

  结果:-1

js解析规则:

  • 函数声明和变量声明都会被提升。函数会首先被提升,然后才是变量
  • 函数声明优先级高于var声明,同个变量名后面的会覆盖前面的
  • 函数表达式不会提升

因此以上规则会被解析为:

function foo(x,y){
  return x+y          
}

var foo
var num

foo = function(x,y){
  return x-y  
}

num= foo(1,2)

  

posted @ 2021-01-13 23:25  前端渣的日常记录  阅读(184)  评论(0编辑  收藏  举报