JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型值和引用类型值具有以下特点: 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中: 从一个变量向另一个变量复制基本类型值,会创建这个值的一个副本: 引用类型的值是对象,保存在堆内存中: 包含引用类型值得变量实际上包含的并不是对象本身,而是一个指向该对象的指针: 从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象: 确定一个值是哪种基本类型可以使用typeof操作符,而…
1.基本类型与引用类型 基本类型:值保存在变量中 (Number.String.Boolean.Undefined.Null).在内存中占据固定大小空间,被保存在栈内存中 引用类型:值是保存在内存中的对象:操作对象实际操作的是对象的引用而不是实际的对象.保存在堆内存中 复制变量值:                传递参数:ECMAScript中所有函数的参数都是按值传递的 基本类型的值传递如同基本类型的值复制一样,引用类型的值传递如同引用类型的变量复制一样 instanceof  检测对象的类型…
4.1 基本类型和引用类型的值             1.基本类型的值是(简单的数据段),引用类型的值是(保存在内存中的对象). 基本类型的值在内存中占据固定大小的空间,因此被保存在栈中.(lifo)(后进先出的数据结构) 引用类型的值保存在堆(先进先出的数据结构)中.引用存放在栈中. 2.为对象添加属性时,操作的是实际对象:复制保存时操作的 是对象引用. 3.复制变量值:①基本数据类型 var num1 = 5; var num2 = num1; //num1与num2是完全独立的 ②引用类…
传递参数 ECMAScript所有函数参数都是按值传递的,即使对象在函数内部修改了参数的值,原始的引用任然不变,局部对象在函数执行完毕后被销毁…
一. 延长作用域链 有些语句可以在作用域前端临时增加一个变量对象,该变量对象在代码执行完成后会被移除. ①with语句延长作用域. function buildUrl(){ var qs="?debug=true"; with(location){ var url=href+qs; } return url; } buildUrl(); //result:http://www.fanxbao.com/?debug=true ②try...catch...中的catch语句块延长作用域链…
概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型(BOM)  一套提供了与浏览器交互的API ECMAScript仅仅定义了这门语言的基础,如定义了:语法.类型.语句.关键字等,实际上这门语言本身不包含输入输出定义. 而现实中,ECMAScript大多借用了某些宿主环境(如web浏览器,Node,Adobe Flash)来实现丰富的功能,这些宿主环…
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都被人们用来表达相同的含义,但 JavaScript 的含义却比 ECMA-262 中规定的要多得多. 一个完整的 JavaScript 实现应该由下列三个不同的部分组成(见图 1-1)    核心(ECMAScript)由 ECMA-262 定义,提供核心语言功能  文档对象模型(DOM)提供访…
1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body> <div> click me! </div> </body> 如果在body和div内都注册了click的事件监听,之后又点击了div区域,是body先响应还是div先响应?有意思的是,当时的浏览器开发团队IE和Netscape提出了差不多完全相反的事件流的概念.IE的事件流是事件冒泡流,而Netscape提出的事件流是事件捕获流. IE的事件…
说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,JavaScript中如何面向对象? JavaScript中将对象定义为:一组无序的 键值对的集合,属性以及方法的名称就是键,键的值可以是任何类型(字符串,数字,函数……) 在JavaScript中,所有对象继承自Object,所有对象继承自Object,所有对象继承自Object! 创建 1  简单创建…
var obj = {'a':'a'}; var fun = function (){} console.log(typeof obj);//object console.log(typeof fun);//function var a; console.log(a === undefined);//true console.log(typeof b);//true 未声明的变量使用会报错,但是他的typeof=undefined var c=null; console.log(typeof c…