浅谈js的内存与闭包
本文转载于: 猿2048 网站➤ https://www.mk2048.com/blog/blog.php?id=icjj10hjaa 本文来自于我的 github 0.前言 主要结合了内存的概念讲了js的一些的很简单、但是又不小心就犯错的地方。 结论:js执行顺序,先定义,后执行,从上到下,就近原则。闭包可以让外部访问某函数内部变量,而且会导致内存泄漏。 1.先说类型 在ECMAscript数据类型有基本类型和引用类型,基本类型有Undefined、Null、Boolean、Number、String,引用类型有Object,所有的的值将会是6种的其中之一(数据类型具有动态性,没有定义其他数据类型的必要了) 引用类型的值,也就是对象,一个对象是某个引用类型的一个实例,用new操作符创建也可以用字面量的方式(对象字面量创建var obj ={ })。ECMA里面有很多原生的引用类型,就是查文档的时候看见的那些:Function、Number (是对于原始类型Number的引用类型)、String(是对于原始类型String的引用类型)、Date、Array、Boolean(...)、Math、RegExp等等。 在程序运行的时候,整块内存可以划分为常量池(存放基本类型的值)、栈(存放变量)、很大的堆(存放对象)、运行时环境(函数运行时) 基本数据类型的值是直接在常量池里面可以拿到