《JavaScript高级程序设计》笔记——chapter5 引用类型(Object/Array)

前言
前面在第三章基本概念一节稍微提及了引用类型的概念,在第四章详细介绍了基本数据类型与引用类型作为变量时的不同。本章将详细介绍ECMAScript的原生引用类型。
首先复习下基本类型值与引用类型值的特点:
  • 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中
  • 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本
  • 引用类型的值是对象,保存在堆内存中;
  • 包含引用类型值的变量确实是在栈内存中,不过它仅仅是一个指向对象的指针而已
  • 从一个变量向另一个变量复制引用类型的值,复制的是指针,因此两个变量最终指向同一个对象
  • 确定一个值是哪种基本类型可以用 typeof 操作符,而确定一个值是哪种引用类型可以使用 instanceof 操作符




引用类型的值(即 对象)是某个特定引用类型的一个 实例
引用类型有时也被成为 对象定义,因为它们描述的是一类对象所具有的属性和方法。


5.1 Object类型

创建Object实例的方式:

  • 使用new 操作符后面跟 Object构造函数:
var person = new Object();  //person是一个对象,即Object类型的实例
person.name = "Jack";       //name是person的属性
person.age = 26;

  • 使用对象字面量表示法(注意标点)
var person = {
    name : "Jack",   //此处是逗号
    age : 26        //最后一个属性后面没有符号
};                 //定义完需要引号结尾

☞对象字面量法要求的代码量少,而且能给人封装数据的感觉。实际上,对象字面量也是向函数传递大量可选参数的首选方式。


访问对象属性的方式:

  • 点表示法   
  • 方括号表示法

alert( person.name);    //点表示法
alert( person["name"]);  //方括号法

var propertyName = "name";  //把属性"name"赋值给一个变量
alert(person[propertyName]); //方括号法还可以通过此变量来访问属性

//当属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号法
person["first name"] = "Jack";  //此例中,"first name"中有空格,不能用点表示法来访问  person.first name 是错误的
注:除非必须使用变量来访问属性,否则建议使用点表示法。



5.2  Array 类型

特点:
  • 和其他语言的数组一样,都是数据的有序列表
  • 不同的是,ECMAScript数组的每一项可以保存任何类型的数据。(解释:第一项是String,第二项可以是Number,第三项又可以是对象。。。。)
  • ECMAScript数组的大小可以动态调整,即随着数据的添加自动增长以容纳新增数据。

创建方法:
  • 使用Array构造函数
    • 空数组    var  Obj = new Array();
    • 指定长度的数组    var Obj = new Array(size);
    • 指定元素的数组    var Obj = new Array( element0, element1, ..., elementn)
  • 使用数组字面量表示法
    • 单维数组    var Obj = [ element0, element1, ..., elementn];
    • 多维数组    var Obj = [[数组序列1], [数组序列2], ....... , [数组序列n]];



基本操作:


数组属性:
  • constructor : 引用数组对象的构造函数
  • length : 返回数值的长度(具体看P87)
  • property : 通过增加属性和方法扩展数组的定义


数组方法:














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值