这些高级语言基本都屏蔽了对内存的显示操作。比如.net,java,python等。你只能对对象进行操作间接的控制内存。而内存的申请回收都交由语言框架完成。
一些带GC的语言都会自己去管理对象,而像C/C++这种是可以直接操作对象的内存的,但是需要自己手动去delete的,当然,现在智能指针用的也很方便
首先,js语言本身定义确实不允许,其次,你考虑js运行环境,是用在浏览器上,浏览器一般情况也不能访问内存,不然,你想像一下,浏览器可以访问读写电脑上的内存,那将是多么恐怖的事儿(随便写一个小程序就可以控制你电脑,拿到你电脑上所有的东西了。)。
作为一门高级语言,JS并不像低级语言C/C++那样拥有对内存的完全掌控。JS中内存的分配和回收都是自动完成,内存在不使用的时候会被垃圾回收器自动回收。
我觉得你首先应该看一下堆内存和栈内存的概念
var a
假如有个变量名a,如果a的值为基本数据类型(Undefined、Null、Boolean、Number 和 String)。则是直接把值赋给变量a(如1,“12”等),并存储在堆内存中。
如果a的值为引用数据类型,则需要先创建一个栈内存,然后将a的值存到栈内存中,将栈内存的地址赋给变量a。
这个不是一句两句能说明白的,所以我觉得你应该先了解基本类型、引用类型、堆内存、栈内存等概念,希望能帮到你