
JavaScript数组是无类型的:数组元素可以是任意类型,
JavaScript数组是动态的:根据需要它们会增长或缩减
JavaScript数组可能是稀疏的:数组元素的索引不一定要连续的,它们之间可以有空缺。
数组继承自Array.pxototype中的属性,它定义了一套丰富的数组操作方法
创建 Array 对象的语法:
new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
请记住,数组是对象的特殊形式。使用方括号访问数组元素就像用方括号访问对象的属性一样。JavaScript将指定的数字索引值转换成字符串—索引值1变成“1″—然后将其作为属性名来使用。注意,可以使用负数或非整数来索引数组。
a[-1.23] = true; //这将创建一个名为”-1.23”的属性
a["1000"]=0; //这是数组的第1001个元素
a[1.000] //和a[1]相等
设置length属性为一个小于当前长度的非负整数n时,当前数组中,那些索引值大于或等于n的元素将从中删除:
a = [1,2,3,4,5]; // 从5个元素的数组开始
a.length=3; // 现在a为[1,2,3]
a.length=0; // 删除所有的元素。a为 [ ] 空
a.length=5; // 当长度从0为5,但是没有元素,就像new Array(5) 这样
Object.defineProperty(a, "length",{writable: false}); //可以使用对象的方法,使length不可改变
类似地,如果让一个数组元素不能配置,就不能删除它。如果不能删除它,length属性不能设置为小于不可配置元素的索引值
数组遍历(for\forin\forEach())
前两种就不示例了,只是forin需要注意排除继承的属性
ECMAScript 5定义了一些遍历数组元素forEach()方法,按照索引的顺序按个传递给定义的一个函数。例:
var d = [1,2,3,5,10];
d.forEach(function(x){
document.write(x + "<br />");
});
他可以传入一个函数,并把每次的值给x,使用这种新的语法比其他的遍历能得到更加强大的应用….
对象属性
属性 | 描述 |
---|---|
constructor | 返回对创建此对象的数组函数的引用。 |
length | 设置或返回数组中元素的数目。 |
prototype | 使您有能力向对象添加属性和方法。 |
对象方法
方法 | 描述 |
---|---|
concat() | 连接两个或更多的数组,并返回结果。 |
join() | 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 |
pop() | 删除并返回数组的最后一个元素 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reverse() | 颠倒数组中元素的顺序。 |
shift() | 删除并返回数组的第一个元素 |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
slice() | 从某个已有的数组返回选定的元素,如果出现负数(-1),说明倒数(一位) |
sort() | 对数组的元素进行排序,可以传入一个函数 |
splice() | 删除元素,并向数组添加新元素。参数为哪里开始,删除几个,新添加的元素 |
toSource() | 返回该对象的源代码。 |
toString() | 把数组转换为字符串,并返回结果。 |
toLocaleString() | 把数组转换为本地数组,并返回结果。 |
valueOf() | 返回数组对象的原始值 |
ECMAScript 5定义了9个数组方法来遍历、映射、过滤、检测、简化和搜索 |
|
forEach() | 从头至尾遍历数组,为每个元素调用指定的函数。(三个参数调用该函数:数组元素、元素的索引和数组本身,可以编写只有一个参数的函数-其他将被忽略) |
map() | 将调用的数组的每个元素传递给指定的函数,并返回一个数组. |
filter() | 返回的数组元素是调用的数组的一个子集.传递的函数是用来逻辑判定的:true 或 false(注意,会跳过稀疏数组中缺少的元素) |
every() | 逻辑判定:它们对数组元素应用指定的函数进行判定,返回true或false.当且仅当针对数组中的所有元素调用判定函数都返回true,它才返回true |
some() | 逻辑判定:它们对数组元素应用指定的函数进行判定,返回true或false.当数组中至少有一个元素调用判定函数返回true,它就返回true |
注意,一旦every()和some()确认该返回什么值它们就会停止遍历数组元素。 | |
reduce() | 使用指定的函数将数组元素进行组合,生成单个值.需要两个参数。第一个是执行化简操作的函数。把两个值组合或化简为一个值,并返回化简后的值。第二个(可选)的参数是一个传递给函数的初始值 |
reduceRight() | 和reduce()一样,不同的是它按照数组索引从高到低处理数据 |
indexOf()和lastIndexOf() | 搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到就返回-1.不接收一个函数作为其参数,第一个参数是需要搜索的值,第二个参数是可选的:它指定数组中的一个索引,从那里里开始搜索 |
其中可以给sort()方法传递一个比较函数,例:
var c = [1122,33,14,5,20];
c.sort() + "<br />"); // => 1122,14,20,33,5
c.sort(function(a,b){ //传入一个function方法,大于0在后,小于0在前
return a-b; // => 5,14,20,33,1122
})
在ECMAScript 5中,可以使用Array.isArray()函数判断是否为数组
数组对象特性
- 当有新的元素添加到列表中时,自动更新length属性。
- 设置length为一个较小值将截断数组。
- 从Array.prototype中继承一些有用的方法。
- 其类属性为“Array”。
Date 对象用于处理日期和时间。
var myDate=new Date() //创建当前日期和时间对象
Date 对象
Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
注释:Date 对象会自动把当前日期和时间保存为其初始值。
Date 对象属性
属性 | 描述 |
---|---|
constructor | 返回对创建此对象的 Date 函数的引用。 |
prototype | 使您有能力向对象添加属性和方法。 |
Date 对象方法
方法 | 描述 |
---|---|
Date() | 返回当日的日期和时间。 |
getDate() | 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
getDay() | 从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
getMonth() | 从 Date 对象返回月份 (0 ~ 11)。 |
getFullYear() | 从 Date 对象以四位数字返回年份。 |
getYear() | 请使用 getFullYear() 方法代替。 |
getHours() | 返回 Date 对象的小时 (0 ~ 23)。 |
getMinutes() | 返回 Date 对象的分钟 (0 ~ 59)。 |
getSeconds() | 返回 Date 对象的秒数 (0 ~ 59)。 |
getMilliseconds() | 返回 Date 对象的毫秒(0 ~ 999)。 |
getTime() | 返回 1970 年 1 月 1 日至今的毫秒数。 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份。 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
setDate() | 设置 Date 对象中月的某一天 (1 ~ 31)。 |
setMonth() | 设置 Date 对象中月份 (0 ~ 11)。 |
setFullYear() | 设置 Date 对象中的年份(四位数字)。 |
setYear() | 请使用 setFullYear() 方法代替。 |
setHours() | 设置 Date 对象中的小时 (0 ~ 23)。 |
setMinutes() | 设置 Date 对象中的分钟 (0 ~ 59)。 |
setSeconds() | 设置 Date 对象中的秒钟 (0 ~ 59)。 |
setMilliseconds() | 设置 Date 对象中的毫秒 (0 ~ 999)。 |
setTime() | 以毫秒设置 Date 对象。 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字)。 |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
setUTCSeconds() | 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
toSource() | 返回该对象的源代码。 |
toString() | 把 Date 对象转换为字符串。 |
toTimeString() | 把 Date 对象的时间部分转换为字符串。 |
toDateString() | 把 Date 对象的日期部分转换为字符串。 |
toGMTString() | 请使用 toUTCString() 方法代替。 |
toUTCString() | 根据世界时,把 Date 对象转换为字符串。 |
toLocaleString() | 根据本地时间格式,把 Date 对象转换为字符串。 |
toLocaleTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
toLocaleDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
valueOf() | 返回 Date 对象的原始值。 |
原创文章转载请注明:转载自:JavaScript数组Array对象和日期Date对象学习
可以的,继续加油!