06.变量提升与函数提升.html 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <!--
  11. 1、变量声明提升
  12. *通过var定义(声明)的变量,在定义语句之前就可以访问到
  13. *值:undefined
  14. 2、函数声明提升
  15. *通过function声明的函数,在之前就可以直接调用
  16. *值:函数定义(对象)
  17. 3、问题:变量提升和函数提升是如何产生的?
  18. -->
  19. <script>
  20. /*
  21. 面试题:输出 undefined
  22. */
  23. var a = 3
  24. function fn() {
  25. console.log(a)
  26. var a = 4
  27. }
  28. fn() //undefined
  29. console.log(b) //undefined 变量提升
  30. fn2() //fn2(),可以调用 函数提升
  31. // fn3() //不能调用 变量提升
  32. var b = 3
  33. function fn2(){
  34. console.log('fn2()')
  35. }
  36. var fn3 = function(){
  37. console.log('fn3()')
  38. }
  39. </script>
  40. </body>
  41. </html>