1基本类型是指那些保存在栈内存的简单数据段,引用类型是指那些保存在堆内存中的对象,变量中保存的实际上只是一个指针。

2javascript中5种基本数据类型Undefined,Null,Boolean,Number和String

3事实上我们不能给基本类型的值添加属性,尽管在javascript这样做不会导致任何错误。

var name = "Angela";
name.age = 23;
alert(name.age);//undefined;

4ECMAScript中所有函数的参数都是按值传递的。

function setName(obj) {
obj.name = "Angela";
}
var person = new
Object;
setName(person);
alert(person.name); //Angela
也就是虽然是值传递
但是obj事实是是person的一个副本 里面保存的是引用堆内存的一个指针
所以person和obj指向同一个对象

下面的例子可以更深刻的反应ECMAScript中所有函数的参数都是按值传递的

function setName(obj) {
obj.name = "Angela";
obj = new
Object;
obj.name = "Yanlong";
}
var person = new
Object;
setName(person);
alert(person.name); //Angela

5typeof操作符是确定一个变量是字符串、数值、布尔值,还是undefined的最佳工具,如果变量的值是一个对象或者是null,则typeof操作符会返回object

6如果使用instanceof操作符检测基本类型的值,则该操作符始终返回false,因为基本类型不是对象。如果检测的类型为引用类型的实例,则返回true

7所有全局变量和函数都是作为window对象的属性和方法创建的。

8每个函数都有自己的执行环境 ,当代码在一个环境中执行时,会创建变量对象的一个作用域链

var obj = {};
alert(obj instanceof Object);//true

区别 Jquery对象和Dom对象

在讨论之前,先约定好定义变量的风格。

如果获取的对象是jQuery对象,那么在变量前加上$,例如:

var $variable = jQuery对象;

如果获取的是DOM对象,则定义如下:

var variable = DOM对象;

jQuery对象不能使用DOM中的方法,但是如果对jQuery对象所提供的方法不熟悉,或者jQuery没有封装想要的方法,不得不实用DOM对象的时候,有以下两种处理方法。jQuery提供了两种方法将一个jQuery对象转换成DOm对象,即[index]和get(index).

1、jQuery对象是一个数组对象,可以通过[index]的方法得到相应的DOM对象。

var $cr = $("#cr"); //jQuery对象
var cr = $cr[0] //DOM对象
alert(cr.checked) //检测这个checkbox是否选中了

2、通过get(index)方法得到相应的DOM对象。

var $cr = $("#cr");
var cr = $cr.get(0);
alert(cr.checked);

对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了,方式为$(DOM对象)。

var cr = document.getElementByID("cr"); //DOM对象
var $cr = $(cr);

在此总结说明:

jQuery方法里的get方法事实上是获得Dom元素($(this).get(0)与$(this)[0])

而jQuery方法里的eq、first、last等方法都是返回的Jquery对象

DOM对象才能使用DOM中的方法,jQuery对象不可以使用DOM中的方法。jQuery对象提供了一套更加完善的工具用于操作DOM。

javascript变量、作用域和内存问题......的更多相关文章

  1. 第一百零六节,JavaScript变量作用域及内存

    JavaScript变量作用域及内存 学习要点: 1.变量及作用域 2.内存问题 JavaScript的变量与其他语言的变量有很大区别.JavaScript变量是松散型的(不强制类型)本质,决定了它只 ...

  2. JavaScript变量作用域和内存问题(二)

    执行环境是js中特别重要的概念,是指变量或者函数可以访问其他数据,定义自己的行为.每个执行环境都有一个与之相对应的变量对象,执行环境中定义的所有变量和函数都保存在这个变量中,我们看不到这个变量,但是后 ...

  3. 【转】javascript变量作用域、匿名函数及闭包

    下面这段话为摘抄,看到网上大多数人使用的是变量在使用的时候声明而不是在顶端声明,也可能考虑到js查找变量影响性能的问题,哪里用就在哪里声明,也很好. 在Javascript中,我们在写函数的时候往往需 ...

  4. JavaScript 变量作用域

    一. 变量声明 变量用var关键字来声明,如下所示: 变量在未声明的情况下被初始化,会被添加到全局环境. JavaScript执行代码时,会创建一个上下文执行环境,全局环境是最外围的环境.每个函数在被 ...

  5. JavaScript变量作用域

    全部变量拥有全局作用域,局部变量拥有局部作用域(这里注意函数的参数也是局部变量) 1.在函数体内,局部变量的优先级高于同名的全局变量. 我的理解就是当你同时定义了同名的局部变量和全局变量时,函数体内返 ...

  6. 深入理解Javascript变量作用域

    在学习JavaScript的变量作用域之前,我们应当明确几点: a.JavaScript的变量作用域是基于其特有的作用域链的. b.JavaScript没有块级作用域. c.函数中声明的变量在整个函数 ...

  7. JavaScript 变量类型 保存内存中的位置 和 引用

    1. JavaScript变量 基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中. 从一个变量向另一个变量复制基本来下的值 会创建这个值得一个副本. 引用类型的值是对象 保存在堆内存中. 包 ...

  8. JavaScript 变量作用域 详解

    变量作用域要点 - 在JavaScript中没有块级作用域,只有函数作用域 - 在函数体内,局部变量的优先级高于同名的全局变量 - 在全局作用域编写代码时可以不写var语句,但声明局部变量时必须使用v ...

  9. JavaScript变量作用域(Variable Scope)和闭包(closure)的基础知识

    在这篇文章中,我会试图讲解JavaScript变量的作用域和声明提升,以及许多隐隐藏的陷阱.为了确保我们不会碰到不可预见的问题,我们必须真正理解这些概念. 基本定义 作用范围是个“木桶”,里面装着变量 ...

  10. 基础系列(1)之干掉JavaScript变量作用域

     今天去某顺公司面试,发现一些基础知识都不记得了,于是乎决定把js基础系列的全部梳理一遍,今天就整理下js变量作用域的相关基础知识点,配合最常遇到的笔试题阐述. 题一: var g = "a ...

随机推荐

  1. WebConfig 详解

    一.Web.Config继承特性 首先我们就来看看配置文件的继承层次.都知道在ASP.NET中有很多的配置文件,如machine.config,web.config,特别是web.config出现在很 ...

  2. 创建多个Oracle数据库及相应的实例

    转 http://blog.csdn.net/luiseradl/article/details/6972217 对于使用过SQL Server数据库的用户可以会对Oracle中的数据库的实例的概念理 ...

  3. nios II--实验4——按键中断硬件部分

    按键中断 硬件开发 新建原理图 1.打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next&g ...

  4. 记一次在Linux上面启动部署在tomcat服务器的程序

    前提:Linux系统已安装好jre环境 1.文件结构: 文件说明: 部署文件包含以下文件:1.apache-tomcat-7  程序运行的应用服务器tomcat包含: war包:apache-tomc ...

  5. Code.R团队展示

    团队成员: 031302620马凛凛(队长) 031302619吕昆明 031302319汪毓顺 031302404陈俊达 团队名称: Code.R 团队项目: 基于web的教师报课系统 团队成员风采 ...

  6. 理解CDN

    一.CDN定义 CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过 ...

  7. 开发错误记录9:Application无法跳转到Activity

    今天在做友盟消息推送,当客户端收到推送消息时,如客户端不是活动的,用如下代码 启动Activity发现无法启动,原因是原有的任务栈已消毁,判断启动是如消毁,如有,再新建一个 只要给它添加一个标志 就可 ...

  8. java 上传图片 并压缩图片大小

    Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...

  9. 【转】Web前端浏览器兼容初探

    原文地址:http://blog.jobbole.com/38638/ 前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易选择忽略,而形成两个极端: ...

  10. iOS开发小技巧--即时通讯项目:使用富文本在UILabel中显示图片和文字;使用富文本占位显示图片

    Label借助富文本显示图片 1.即时通讯项目中语音消息UI的实现,样式如图: 借助富文本在UILabel中显示图片和文字 // 1.创建一个可变的富文本 NSMutableAttributedStr ...