1. 程式人生 > 其它 >JS進階 十——變數提升與函式提升

JS進階 十——變數提升與函式提升

技術標籤:Javascriptjavascriptjs變數提升函式提升面試題

1.變數提升

  * 通過var定義(宣告)的變數, 在定義語句之前就可以訪問到
  *: undefined

2.函式提升

  * 通過function宣告的函式, 在之前就可以直接呼叫
  *: 函式定義(物件)
  console.log('-----')
  /*
  面試題 : 輸出 undefined
   */
  var a = 3
  function fn () {
    console.log(a)
    var a = 4
  }
  fn()

  console.log
(b) //undefined 變數提升 fn2() //可呼叫 函式提升 // fn3() //不能 變數提升 var b = 3 function fn2() { console.log('fn2()') } var fn3 = function () { console.log('fn3()') }

在這裡插入圖片描述
呼叫fn3()
在這裡插入圖片描述
在這裡插入圖片描述

3.面試題

  function a() {}
  var a
  console.log(typeof a)

--> // 'function'
  if (!(b in window)) {
    var b = 1
  }
console.log(b) -->// undefined
  var c = 1
  function c(c) {
    console.log(c)
    var c = 3
  }
  c(2)

在這裡插入圖片描述