JavaScript中堆栈解析,已经与delete之间的关系。

1,在栈中的数据不会随意删除。

2,堆中的数据可以随意删除。

注意:用eval("var a")定义的变量存放在栈中。

var 和function 语句在JavaScript中的优先级很高,需要预执行。

预执行就是因为需要计算作用域中局部变量指针所占空间的大小,从而给他们分配内存。

栈中的东西是不能随意删除的,所以我们无法删除这些变量。

但是某些情况下变量也可以放在堆中,比如使用eval执行var语句在运行过程中动态定义变量。

由于栈空间的计算在作用域运行前就计算好的,运行过程中动态定义的变量就无法插入栈中,所以被临时分配到了堆中。

既然是在堆中,我们就可以随意的删除它,这样就不会污染到其它作用域了。

时间: 2024-10-17 07:26:16

JavaScript中堆栈解析,已经与delete之间的关系。的相关文章

简单理解javascript中的原型对象,实现对之间共享属性和行为

javascript中提供了构造函数,能够方便的创建对象.典型的构造函数如下: function Person(name, age) { this.name = name; this.age = age; this.say = function () { return this.name + ',' + this.age;; } 之后就可以用new和构造函数创建多个对象.javascript中,类的不同对象之间,属性和方法都是独立的.什么意思呢?java中类的不同对象之间,成员变量是独立的(每个

Android进阶笔记08:Android 中Activity、Window和View之间的关系

1. Android 中Activity.Window和View之间的关系(比喻): Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) LayoutInflater像剪刀,Xml配置像窗花图纸.  2. 详解:       Activity是Android应用程序的载体,允许用户在其上创建一个用户界面,并提供用户处理事件的API,如onKeyEvent, onTouchEvent等. 并维护应用程序的生命周期.Activity本身是个庞大的载体,

Javascript中的函数(Function)与对象(Object)的关系

今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的两个代码,也是最容易理解的. function fn(){} var obj = {} console.log(fn instanceof Function)//true console.log(obj instanceof Object)//true console

python中,ascii,unicode,utf8,gbk之间的关系梳理

在计算机中,经常遇到编码问题,本节主要梳理下ascii,unicode,utf8,gbk 这几种编码之间的关系. ASCII 计算机中,所有数据都以0和1来表示.在一开始的时候,要表示的内容比较少,人们使用了ascii编码的方式来编码. ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 -

js中prototype,__proto__,constructor之间的关系

首先,我们需要了解三点: 1. 只要创建一个任意新函数,就会根据一个prototype属性,该属性指向函数的原型对象: 2. 每一个原型对象都会自动获得一个constructor属性,该属性只想prototype所在函数的指针: 3. 当调用构造函数创建实例时,该实例内部将包含一个指向构造函数原型对象的指针,在大部分浏览器中用__proto__标识: 从上面这三点我们可以了解到: 正常情况下:prototype属性 -> 原型对象 原型对象的constructor属性 -> 构造函数(即拥有p

Zstack中任务,事件,消息之间的关系

Zstack是Zigbee协议的具体实现,在实现的过程中为了能够更好的对各个模块和功能进行管理,所以加入了OSAL(Operating System Abstraction Layer 操作系统抽象层)(以上为个人见解). 在OSAL中,提出了任务,事件,消息三个概念.它们之间的关系如下: 任务是处理事件的一个功能集合,一般由一个事件处理函数实现(ProcessEvents) 事件是当前系统中被触发的动作,例如有按键按下,接收到其他节点发送过来的消息等等 消息则是事件编号和其对应事件内容的集合,

Java中接口与接口和类之间的关系

接口和接口之间的关系 继承关系 可以多继承,并且可以多层继承 注意: 1.如果多个父接口中有同名的抽象方法,那么子接口只需要实现一次即可 2.如果多个父接口中有同名的默认方法,那么子接口必须重写默认方法,必须要加default关键字3.如果多个父接口中有同名的静态方法,那么无须理会,因为静态方法只能供接口使用 4.如果多个父接口中有同名的私有方法,那么无须理会,因为私有方法只能本接口使用 接口和类之间的关系 实现关系 单实现: 一个类只实现一个接口 多实现: 一个类可以同时实现多个接口 格式:

storm中worker、executor、task之间的关系

理清一下worker.executor.task.supervisor.nimbus.zk这几个之间的关系 先来看一张图 (图片来自:http://www.cnblogs.com/foreach-break/p/storm_worker_executor_spout_bolt_simbus_supervisor_mk-assignments.html) 首先从微观上来看:worker即进程,一个worker就是一个进程,进程里面包含一个或多个线程,一个线程就是一个executor,一个线程会处理

【JavaScript】JavaScript模块化编程 - CommonJS, AMD 和 RequireJS之间的关系

通行的Javascript模块规范共有两种:CommonJS和AMD 先说说CommonJS CommonJS - 大家是不是觉得JavaScript仅仅是一个客户端的编译语言,其实JavaScript设计之初不仅仅是针对客户端设计的语言.后来只是由于Web的迅速流行,加之Netscape和微软之间之争过早的将JavaScipt标准化.要了解详细的JS历史请查看:http://zh.wikipedia.org/zh-cn/JavaScript.过早的标准化JS就导致JS的诸多缺陷和标准类库的缺乏