请解释一些ECMAscript中的概念含义?

原始值
存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。 // 变量访问的位置是什么意思?原始值存储在变量处的值是什么?希望能和下面的引用值存储在变量处的值做一个类比。麻烦以通俗的话语解释,欢迎多举例子,这样好理解。
引用值
存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。/* 引用值指的是对象吗?这里说的存储在变量处的值为一个指针,指针怎么理解?/*

侃侃尔雅
浏览 466回答 1
1回答

慕勒3428872

背这种概念在初学时意义不大多写代码就能理解了简单说明下, ECMAScript有以下基础数据类型Function, Object, String, Number, Boolean, UndefinedObject也可以细分出Array, RegExp等对象类型只有Function, Object被当作heap中的对象, 它的特点是你可以增添其键值对例如Func = function(){}Func.test = 'test'console.log(Func.test)这就产生了把它作为参数传递时的问题, 因为对象的可以引用自身比如A = [0,1,2]A[1] = Aconsole.log(A + '')B = AB[1] = 1console.log(A + '')那麽就无法通过简单的操作复制一个对象, 於是以上的Func, A都只存储一个指针而对於其它类型的数据, 都可以通过有限的步骤, 高效的复制比如N = 0M = N++Nconsole.log(M)可以看出此处M, N所指向的数据空间是不同的当然在某些浏览器中, 为了字符串的高效操作, 它把长度较小的字符串全部放进内存特定位置, 用於减少复制产生的消耗更简单的讲, 就是stack中值在传递/赋值等操作时是产生新的副本的heap不会产生新的副本当然, 解释内核的详细解析情况, 参阅ECMA-262.pdf
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript