1. 对象和数组
总述
对象和数组是JS里两种重要的数据类型,它们与普通的如字符串和数字等基本数据类型不同的是:它们不是表示单个值,而是表示值的集合。
对象是一组已命名的值的集合,而数组是一种特殊的对象,是一组数值的有序集合。
1.1创建对象
对象把多个数据值集合在一个单元中,并且允许用名字来存放和获取这些值。
对象定义一般如下:
var empty = {}
var point = {x:0,y:0}
var home = {
“name”:”liugx”,
“age”:29,
“married”:false
“email”:”liugx@sina.com”
}
以上写法我们在程序里常常用到,比如把函数的参数作为一个obj来传递;比如定义一个obj,赋上属性后,做为一个集合来使用;比如在客户端js里new一个img的ojb,赋值给它属性,如left,top,等,再appendchild到document中来显示;如常常在服务端封装成一个json,再在前台里把返回的字符串eval成obj,再通过属性来得到具体的值。。。。
在程序里,我们也常常用var o = new Object()来定义一个对象,再给这个o赋上相应的属性。这里的Object()是一个构造函数,就像我们常常在js里做如下定义:
function TrackRecordMgr(){}
TrackRecordMgr.prototype={
doFun1:function(){
},
doFun2:function(){
}
}
上面的TrackRecordMgr()就是我们自定义的构造函数,只是在写js时,我们常常忘记了面象对象的思想了。在js里内建的构造函数常用的还有:
var a = new Array();
var d = new Date();
var r = new RegExp();
1.2对象属性
对象属性主要掌握以下几个:
1、 对象的属性可以通过给它赋值的方法来创建。这点我们在程序里常常用到。创建了属性后就可以任意时刻改变属性的值。
2、 对象属性分为标识符与字符串两种写法的区别,理解这两种各用在哪些方面,特别是字符串数组的写法。
用数组表示法来访问对象的属性是很灵活的,为什么这么说呢?看下面的代码:
for(var i=0;i<5;i++){
addresses = o[“addIndex”+i]+”,”
}
同时,我们在代码里常常把一个对象做为参数传递给另一个对象,另一个对象在需要遍历第一个对象的属性,把它加到自己身上。遍历的时候因为并无法知道第一个对象的所有属性名,所以只能通过数组写法来赋值:
for(var name in obj1){
if(obj1.name){
ojb2[name] = obj1[name];
}
}
3、 对象的属性常常要遍历,无论是出于调试也好,还是出于取出对象的属性重新进行赋值也好。常用的语法是:
for(var name in obj){}
注意:遍历不分顺序;且只列出用户自定义的属性,而预定义的属性却不遍历。
另外,判断对象的属性是否存在:
if(o.dosomething) o.dosomething();(我们不用if(dosomethin in o))
4、 对象的一些固有的常用的属性。
Constructor属性(很重要,其实也很常用,用面象对象的思想来看待它):
每一个对象都有constructor属性,它引用了对象的构造函数。
如果new 一个Date(),则这个new的dateojb的constructor就是Date,如下;
var dateobj = new Date();
dateobj.constructor == Date;
因为Constructor与构造函数相关联起来,所以Constructor常用来判断对象的类型:
if((typeof o ==”object”)&&(o.constructor==Date))
我们常常不这样写,而用instanceof来替换Constructor:
if((typeof o == “object”)&&(o instanceof Date))
toString属性
toString属性我们常常用在调试。
1.3数组
我们在程序里要把数组与对象分开来用,但是其实typeof一个数组会发现数组其实也是一个对象,返回值是“object”。
创建数组我们程序里常用:
var = new Array();
var a = new Array(10);
var a = new Array(1,2,3,4,5);
var a =[];
var a=[1,2,3,4,5]
读写数组元素
读写数组元素很常用,就不说了。
常用的是遍历数组:
for(var i=0;i<a.length;i++){
alert(a[i]);
}
数组的方法
Join()方法
Sort()方法
Sort()方法不需要自己去写,直接调用就可以了。
Slice()方法
返回指定数组的一个片段,或者说是子数组。
Splice()方法
插入或删除数组的通用方法。
这里注意splice()方法返回的是删除后的数组,如果这个方法在一个循环体内,且循环的是这个数组,注意splice()方法后这个数组就变了,所以每次循环都要注意数组的值有没有发生变化。
Push()或pop()方法
在数组的末尾插入或删除数组元素。很常用。
分享到:
相关推荐
【狂神说系列 JavaScript笔记】是一份全面且深入的JavaScript学习资源,旨在帮助开发者和初学者深入理解这门广泛应用于Web开发的脚本语言。这份笔记涵盖了JavaScript的基础语法、核心概念以及高级特性,旨在构建一个...
* 对象和数组:对象的创建、对象的属性和方法、数组的创建、数组的方法等 * 构造函数:构造函数的定义、构造函数的调用等 JavaScript 高级 * 闭包:闭包的定义、闭包的使用等 * 高级函数:高阶函数的定义、函数...
以上内容来自文档《JS学习笔记.pdf》,涵盖了JavaScript语言中几个重要的概念和方法,其中包括类型转换、字符串处理、函数使用和数组处理等方面的知识。学习这些知识点对于深入理解和掌握JavaScript编程至关重要。...
在本篇学习笔记中,我们将重点关注两种基本的对象类型:日期对象(Date)和数组对象(Array)。 首先,让我们来看看日期对象Date。在JavaScript中,Date对象用于处理日期和时间。创建一个Date对象的基本格式是`new ...
本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符和流程控制。变量在JavaScript中使用`let`、`const`和`var`...
9. 对象和数组 ES6对对象字面量进行了扩展,包括方法的简洁表示、属性的计算名等。同时,ES6提供了新的数组方法,如`find()`、`fill()`等。 10. 异步处理 除了`Promise`和`async/await`,ES6中也对事件循环进行了...
《JavaScript学习笔记》包含了JavaScript的基础语法部分,以markdown和PDF两种格式提供,方便不同需求的学习者查阅和打印。Markdown格式易于阅读和编辑,而PDF格式则更适合离线阅读和保存。 在"JavaScript基础语法....
在JavaScript的学习过程中,首先会接触到基础语法,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、操作符(算术、比较、逻辑、三元运算符)以及流程控制语句...
引用数据类型主要包括对象和数组,它们是存储在堆内存中的,通过引用(地址)访问。 JavaScript还支持面向对象编程,这是通过构造函数、原型链和实例化来实现的。通过构造函数创建对象,原型链允许对象间共享属性和...
数据类型主要有基础类型(如字符串、数字、布尔值)和引用类型(如对象和数组)。操作符用于比较、算术运算以及逻辑判断。流程控制则涉及到条件语句(if...else)和循环(for、while),用于决定代码执行的顺序。...
3. JSON对象与JSON数组的创建:学习笔记可能介绍如何使用JSON-lib创建JSON对象和数组。例如,你可以通过`net.sf.json.JSONObject`和`net.sf.json.JSONArray`类来实现。 4. Java对象转换为JSON:JSON-lib提供了`...
总的来说,这份"JavaScript学习笔记"旨在帮助初学者快速入门,并为有经验的开发者提供参考。通过深入学习,你可以掌握JavaScript的核心原理,运用到实际项目中,从而成为一名熟练的前端开发者。
JavaScript是一种基于原型的脚本语言,它具备灵活而强大的对象和数组引用类型。对象和数组是引用类型,这意味着它们存储的是引用的值而不是实际的数据值。在JavaScript中,对象和数组是用于存储和操作数据的关键构建...
1. 变量与数据类型:理解var、let和const的声明方式,以及基本数据类型(字符串、数字、布尔值、null、undefined、symbol)和复杂数据类型(对象和数组)的区别。 2. 运算符:掌握算术运算符、比较运算符、逻辑...
数据类型包括基本类型(如字符串、数字、布尔值、null和undefined)和引用类型(如对象和数组)。在处理数据时,我们常会用到算术、比较和逻辑操作符,以及用于对象和数组操作的赋值、解构赋值等。 在“JS练习代码...
### JavaScript函数、对象和数组 #### 函数定义 JavaScript函数可以使用函数表达式或函数声明两种方式定义。函数表达式通常赋值给一个变量,而函数声明则直接声明函数名。 #### 对象 JavaScript中的对象是一种...
本文是学习笔记系列的第二篇,深入浅出的分别从javascript对象和数组两个部分介绍了相关知识,并附上详细示例,非常的实用,有需要的朋友可以参考下
JavaScript的基础语法与C++和Java相似,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)以及控制流语句(如条件语句if...else、循环for、while)。`main.js`...
- JSON数据结构主要由对象(键值对的集合,用花括号{}包围)和数组(有序元素列表,用方括号[]包围)组成。 - 对象中的键是字符串,值可以是各种数据类型,包括字符串、数字、布尔值、数组、对象等。 - JSON的...
1. **数据类型**分为基本类型(如number、string、boolean、null、undefined)和引用类型(如对象和数组)。 2. 特别地,`null`和`undefined`被认为是两种独立的基本类型。`null`通常表示一个尚未定义的值,而`...