03.内存溢出与内存泄漏.html 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. *一种程序运行出现的错误
  13. *当程序运行需要的内存超过了剩余的内存时,就会抛出内存溢出的错误
  14. 2、内存泄漏
  15. *占用的内存没有及时释放
  16. *内存泄漏积累多了就容易导致内存溢出
  17. *常见的内存泄漏:
  18. *意外的全局变量
  19. *没有及时清理的计时器或回调函数
  20. *闭包
  21. -->
  22. <script>
  23. //1、内存溢出
  24. var obj = {}
  25. for(var i = 0;i<10000;i++){
  26. obj[i] = new Array(1000000)
  27. console.log('----****----')
  28. }
  29. //2、内存泄漏
  30. //意外的全局变量
  31. function fn(){
  32. a = new Array(1000000)
  33. console.log(a)
  34. }
  35. fn()
  36. var intervaLId = setInterval(function(){//启动循环定时器后不清理
  37. console.log('----')
  38. },1000)
  39. clearInterval(intervaLId)
  40. function fn1(){
  41. var a = 4
  42. function fn2(){
  43. console.log(++a)
  44. }
  45. return fn2
  46. }
  47. var f = fn1()
  48. f()
  49. f=null
  50. </script>
  51. </body>
  52. </html>