JavaScript数组Array对象和日期Date对象学习

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 对象的原始值。

1 条评论

发表回复

*