JavaScript从入门到精通复习
一、JavaScript的内部对象
1、Object对象
1).创建Object对象语法:
obj = new Object([value])
参数说明:
obj:必选项。要赋值为Object对象的变量名。
value:可选项。任意一种Jscript基本数据类型。(Number、Boolean、或String。)如果value为一个对象,返回不做改动的该对象。如果value为null、undefined,或者没有给出,则产生没有内容的对象。
如: var a = new object(“javascript”);
2).Object对象的属性
(1)prototype属性
返回对象类型原型
的引用。
objectName.prototype
参数说明: objectName参数是对象的名称。
例子:
String.prototype.getLength=function(){
alert(this.length);
}
var str=new String(“abcdefg”);
str.getLength();
(2)constructor属性
表示创建
对象的函数。
object.constructor
参数说明:必选项object是对象或函数的名称。
例子:
var newstr=new string(“one”);
if (newstr.constructor==String){
alert(“这是一个字符串对象”);}
3).Object对象的方法
(1)toLocaleString方法
toLocaleString方法返回一个String对象,这个对象中包含了用当前区域设置的默认格式表示的日期。
dateObj.toLocaleString()
参数说明:必选项dateObj为任意的Date对象。
(2)toString方法
返回对象的字符串表示。
objectname.toString([radix])
参数说明:
objectname:必选项。要得到字符串表示的对象。
radix:可选项。指定将数字值转换为字符串时的进制。
toString方法是JavaScript所有内部对象的一个成员方式。
它的操作依赖于对象的类型:
对象 | 操作 |
---|---|
Array | 将Array的元素转化为字符串。结果字符串由逗号分隔,且连接起来 |
Boolean | 如果Boolean的值是true则返回true,否则返回false |
Date | 返回日期的文字表示法 |
Error | 返回一个相关错误信息的字符串 |
Function | 返回格式的字符串,其中funcionname是调用toString()方法的函数名称:function functionname(){[native code]} |
Number | 返回数字的文字表示 |
String | 返回String对象的值 |
默认 | 返回[object onjectname],其中objectname是对象类型的名称 |
(3)valueOf方法
返回指定对象的原始值。
object.valueOf()
参数说明:必选项,object参数是任意固有JavaScript对象。每个JavaScript固有对象的valueOf方法定义不同。
对象 | 操作 |
---|---|
Array | 将Array的元素转化为字符串。结果字符串由逗号分隔,且连接起来,与Array.toString和Array.join方法相同 |
Boolean | 如果Boolean的值是true则返回true,否则返回false |
Date | 存储的事件是1970年1月1日午夜开始的毫秒数 |
Function | 函数本身 |
Number | 数字值 |
String | 字符串值 |
object | 对象本身,这是默认情况 |
2、String对象
1).创建String对象语法:
String对象用于操纵和处理文本串,可以通过该对象在程序中获取字符串长度、提取子字符串,以及将字符串转换为大写或小写字符。
var newstr=new String(StringText)
参数说明:
newstr:创建的String对象名。
StringText:可选项。字符串文本。
例如,创建一个String对象。
var newstr=new String(“欢迎使用JavaScript脚本”)
2).String对象的属性
(1)length属性
该属性用于获得当前字符串的长度。
stringObject.length
参数说明:
stringObject:当前获取长度的String对象名,也可以是字符变量名。
(2)constructor属性
该属性用于对当前对象的函数的引用。
Object.constructor
参数说明:
Object:String对象名或字符变量名。
(3)prototype属性
该属性可以为对象添加属性和方法。
object.prototype.name=value
参数说明:
object:对象名或字符变量名。
Name:要添加的属性名。
Value:添加属性的值。
3).String对象的方法
方法 | 说明 |
---|---|
anchor() | 创建HTML锚 |
big() | 用大号字体显示字符串 |
small() | 用小号字体显示字符串 |
fontsize() | 用指定尺寸来显示字符串 |
bold() | 用粗体显示字符串 |
italics() | 用斜体显示字符串 |
link() | 用符串显示为连接 |
strike() | 用删除线显示字符串 |
blink() | 显示字符串闪动字符串,不支持IE浏览器 |
fixed() | 用斜体显示字符串 |
italics() | 以打印机文本显示字符串 |
charAt() | 返回指定位置的字符 (返回的字符编码) |
charCodeAt() | 返回指定位置的字符 (返回的字符子串) |
concat() | 连接字符串 |
fontcolor() | 使用自定的颜色来显示字符串 |
fromCharCode() | 从字符编码创建一个字符串 |
indexOf() | 检索字符串 |
lastIndexOf() | 从后向前搜索字符串 |
localeCompare() | 用本地特定的顺序来比较两个字符串 |
match() | 在字符串内检索特定的值,或找到一个或多个与正则表达式相匹配的文本 |
replace() | 替换与正则表达式匹配的子串 |
search() | 检索与正则表达式匹配的值 |
split() | 把字符串分隔成字符串数组 |
substr() | 从启始索引号提起字符串中的制定数目的字符 |
substring() | 提取字符串中的两个指定索引号之间的字符 |
slice() | 提取字符串的片段,斌仔心得字符串中返回被提取的部分 |
sub() | 把字符串显示为下标 |
sup() | 把字符串显示为上标 |
toLocaleLowerCase() | 按照本地方式把字符串转换小写 |
toLocaleUpperCase() | 按照本地方式把字符串转换大写 |
toLowerCase() | 把字符串转换小写 |
toUpperCase() | 字符串转换大写 |
toSource() | 代表对象的源代码 |
valueOf() | 返回某个字符串对象的原始值 |
3、Date对象
1).创建Date对象语法:
日期对象是对一个对象数据类型求值,该对象主要负责处理与日期和时间有关的数据信息。在使用Date对象前,首先要创建该对象,其创建格式如下:
dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
Date对象语法中各参数的说明如表所示。
参数 | 说明 |
---|---|
dateObj | 必选项,要赋值为Date对象的变量名 |
dateVal | 必须项,如果是数字值,dataVal表示指定日期与1970年1月1日午夜间全球标准时间的毫秒数;如果是字符串,则dataVal的按照parse方法的规则进行解析。dateVal参数也可以是某些ActiveX(R)对象的VT_DATE值 |
year | 必选项。完整的年份,比如1976 |
month | 必选项。表示完整的月份,是0到11之间的整数(1月至12月) |
date | 必选项。表示日期是从1到31之间的整数 |
hours | 可选项。如果提供了minutes则必须给出,表示小时 |
minutes | 可选项。如果提供了seconds则必须给出,表示分钟 |
seconds | 可选项。如果提供了ms则必须给出,表示秒钟 |
ms | 可选项。表示毫秒,0-999的整数 |
2).Date对象的属性
(1)constructor属性
例如,判断当前对象是否为日期对象。代码如下:
var newDate=new Date();
if (newDate.constructor==Date)
document.write("日期型对象");
运行结果:日期型对象。
(2)prototype属性
例如,用自定义属性来记录当前日期是本周的周几。代码如下:
var newDate=new Date(); //当前日期为2008-1-3
Date.prototype.mark=null; //向对象中添加属性
newDate.mark=new Date.getDay(); //向添加的属性中赋值
alert(newDate.mark);
3).Date对象的方法:
Date对象是JavaScript的一种内部数据类型。该对象没有可以直接读写的属性,所有对日期和时间的操作都是通过方法完成的。
4、event对象
1).event对象的属性
(1)altLeft属性
设置或获取左Alt键的状态。检索左Alt键的当前状态,返回值true表示关闭,false为不关闭。
[window.]event. altLeft
由于altLeft属性是boolean值,因此可以将该属性应用到if语句中,根据获取的值不同而执行不同的操作。
(2)ctrlLeft属性
设置或获取左Ctrl键的状态。检索左Ctrl键的当前状态,返回值true表示关闭,false为不关闭。
[window.]event. ctrlLeft
由于ctrlLeft属性是boolean值,因此可以将该属性应用到if语句中,根据获取的值不同而执行不同的操作。
(3)shiftLeft属性
设置或获取左Shift键的状态。检索左Shift键的当前状态,返回值true表示关闭,false为不关闭。
[window.]event. shiftLeft
由于这3个属性的值同样也都是boolean类型的,所以也可以将它们组合成一个条件在if语句中应用,并且也可以和altKey、ctrlKey和shiftKey属性同时使用。
(4)button属性
设置或获取事件发生时用户所按的鼠标键。
[window.]event.button
(5)clientX属性
获取鼠标在浏览器窗口中的X坐标,该属性是一个只读属性,即只能获取到鼠标的当前位置,不能改变鼠标的位置。
[window.]event. clientX
(6)clientY属性
获取鼠标在浏览器窗口中的Y坐标,该属性是一个只读属性,即只能获取到鼠标的当前位置,不能改变鼠标的位置。
[window.]event. clientY
(7)X属性
设置或获取鼠标指针位置相对于CSS属性中有position属性的上级元素的X轴坐标。如果没有CSS属性中有position属性的上级元素,默认以body元素作为参考对象。
[window.]event. X
(8)Y属性
设置或获取鼠标指针位置相对于CSS属性中有position属性的上级元素的Y轴坐标。如果没有CSS属性中有position属性的上级元素,默认以body元素作为参考对象。
[window.]event. Y
(9)cancelBubble属性
检测是否接受上层元素的事件的控制。如果该属性的值是false,则允许被上层元素的事件控制;否则值为true,不被上层元素的事件控制。
[window.] event.cancelBubble[ = cancelBubble]
(10)srcElement属性
设置或获取触发事件的对象。srcElement属性是事件初始目标的HTML元素对象引用。由于事件通过元素容器层次气泡,可以在任何一个层次进行处理,因此由一个属性指向产生初始事件的元素是很有帮助的。
[window.]event. srcElement
5、filesystemobject对象
对象/集合 | 说明 |
---|---|
FileSystemObject | 主对象。包含用来创建、删除和获得由有关信息,以及通常用操作驱动器、文件的方式和属性。和该对象相关联的许多方法,与其他的FSO为了方便才被提供的 |
Drive | 对象。包含用来收集信息和方法和属性,这些信息是关于系统上的却动气,如驱动器的共享名和她有多少可用空间 |
File | 对象。用来创建、删除或移动文件的方法和属性。也用来系统询问文件名、路径路径和多种其他属性 |
Drives | 集合。提供输入器的列表,这些驱动器实物地或在逻辑上与系统相连接 |
Folder | 对象。用来创建、删除或移动文件夹的方法和属性 |
Folders | 集合。提供在Folder内的所有文件夹的列表 |
TextStream | 对象。用来读写文本文件 |
(1).动态创建FileSystemObject对象
要想对文件进行相应的操作,必须对FileSystemObject对象进行实例化,也就是动态创建FileSystemObject对象。
fso = new ActiveXObject("Scripting.FileSystemObject");
参数说明:
fso:是FileSystemObject对象的一个实例。
在动态实例化FileSystemObject对象后,便可以用实例化变量fso对Drive对象、Drives集合、File对象、Files集合、Folder对象、Folders集合和TextStream对象进行相应的操作。
(2).FileSystemObject对象的方法
(1)GetAbsolutePathName()方法
GetAbsolutePathName()方法根据提供的路径返回明确完整的路径。也就是说如果路径提供了从指定驱动器的根开始的完整的引用,那么它就是明确和完整的。如果路径指定的是映射驱动器的根文件夹,那么完整的路径将只能由一个路径分隔符“\”结束。
object.GetAbsolutePathName(pathspec)
参数说明:
object:必选。FileSystemObject对象的名称。
pathspec:必选。要变为明确完整路径的路径说明。该参数相应设置如表所示。
pathspec | 说明 |
---|---|
“C:” | 返回当前的完整路径 |
“C:…” | 返回当前路径的上一级路径 |
“C:\” | 返回但前路径根目录 |
“C:.\myfile” | 在当前路径后加上“*.*\myfile” |
“myfile” | 在当前路径后加上“\myfile” |
“C:\…\myfile” | 返回当前路径以myfile文件名为结尾 |
(2)GetBaseName()方法
GetBaseName()方法将以字符串的形式返回指定路径中最后成分中的基本名称,不包含文件扩展名。
object.GetBaseName(path)
参数说明:
object:必选。FileSystemObject对象的名称。
path:必选。返回其最后成分中的基本名称的指定路径。当路径与path参数不匹配时, GetBaseName()方法将返回长度为零的空字符串。
(3)GetDriveName()方法
该方法根据指定路径返回包含驱动器名称的字符串。
object.GetDriveName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。路径说明,将根据其中成分返回驱动器名称。
(4)GetDrive()方法
该方法用于返回指定路径中驱动器的Drive对象。
object.GetDrive(drivespec);
参数说明:
object:必选。FileSystemObject的名称。
drivespec:必选。该参数可以是驱动器号(c)、带冒号的驱动器号(c:)、带冒号和路径分隔符的驱动器号(c:\),或者任意网络共享的说明(\\computer2\share1)。
(5)GetExtensionName()方法
GetExtensionName()方法用于返回指定路径中最后成分扩展名的字符串。
object.GetExtensionName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。返回其扩展名的指定路径。
(6)GetFileName()方法
GetFileName()方法返回指定路径的最后成分,但指定的路径不能只是驱动器说明,也可以是共享路径。
object.GetFileName(pathspec)
参数说明:
object:必选。FileSystemObject的名称。
pathspec:必选。指定文件的路径(绝对或相对路径)。
(7)GetParentFolderName()方法
GetParentFolderName()方法根据指定路径中的最后成分返回其父文件夹名称的字符串。
object.GetParentFolderName(path)
参数说明:
object:必选。FileSystemObject的名称。
path:必选。文件名所在的完整路径。
(8)GetSpecialFolder()方法
该方法返回指定的特殊文件夹对象。
object.GetSpecialFolder(folderspec)
参数说明:
object:必选。FileSystemObject的名称。
folderspec:必选。要返回的特殊文件夹的名称。
folderspaec参数的相关设置
常数 | 值 | 说明 |
---|---|---|
windowsFolder | 0 | windows文件夹,包含了由Windows操作系统安装的文件 |
SystemFolder | 1 | 包含库、字体,以及设备驱动程序的System文件夹 |
TemporaryFolder | 2 | 用于储存临时文件的Temp文件夹,这个路径可以在TMP环境变量中找到 |
(9)GetTempName()方法
该方法返回一个随机产生的临时文件或文件夹名,有助于执行那些需要临时文件或文件夹的操作。
object.GetTempName();
参数说明:
object:必选。FileSystemObject的名称。
6、 Drive对象
(1).动态创建Drive对象
使用Drive对象来获取驱动器的相关信息,必需要创建Drive对象,该对象是通过FileSystemObject对象的GetDrive()方法来创建的。
例如,对C盘驱动器创建一个Drive对象。代码如下:
var fso=new ActiveXObject("Scripting.FileSystemObject");
var s=fso.GetDrive("C:\\");
(2).Drive对象的属性
(1)FreeSpace属性
向用户返回指定驱动器或网络共享上的可用空间的大小,只读。
object.FreeSpace
object应为Drive对象。
(2)IsReady属性
如果指定驱动器已就绪则返回True ;否则False。
object.IsReady
object应为Drive对象。
(3)TotalSize属性
以字节为单位返回驱动器或网络共享的所有空间大小。
object.TotalSize
object总是为Drive对象。
(4)DriveType属性
返回一个值,表示所指定驱动器的类型。
object.DriveType
其中object总是一个Drive对象。
(5)SerialNumber属性
返回连续十进制数字,用于唯一标识磁盘卷。
object.SerialNumber
object为Drive对象。
(6)AvailableSpace属性
返回在所指定的驱动器或网络共享上可用的空间的大小。
object.AvailableSpace
其中object总是一个Drive对象。
(7)FileSystem属性
返回指定驱动器所使用的文件系统的类型。
object.FileSystem
其中object总是一个Drive对象。
(8)Path属性
返回指定文件、文件夹或驱动器的路径。
object.Path
参数说明:
object总是为File、Folder或Drive对象。
(9)RootFolder属性
返回一个Folder对象,表示指定驱动器的根文件夹。只读。
object.RootFolder
参数说明:
object总是为Drive对象。
(10)ShareName属性
返回指定驱动器的网络共享名。
object.ShareName
参数说明:
object总是为Drive对象。
(11)VolumeName属性
设置或返回指定驱动器的卷名。读/写。
object.VolumeName[= newname]
参数说明:
object:必选项。总是为Drive对象的名称。
newname:可选项。如果提供了这个部分,那么newname就将成为指定的object的新名称。
7、 File对象
(1)动态创建File对象
使用File对象对指定文件的所有属性进行访问,必需要创建File对象,该对象是通过FileSystemObject对象的GetFile()方法来创建的。
GetFile()方法根据指定的路径中的文件返回相应的File对象。
object.GetFile(filespec)
参数说明:
object:必选。FileSystemObject的名称。
Filespec:必选。指定文件的路径(绝对或相对路径)。
例如,将qq.txt文件以File对象进行实例化。
代码如下:
var fso=new ActiveXObject("Scripting.FileSystemObject");
Var s=fso.GetFile("E:\\word\\JavaScript\\qq.txt");
(2).File对象的方法
(1)Copy方法
Copy方法对单个File或Folder所产生的结果和使用FileSystemObject.CopyFile或FileSystemObject.CopyFolder所执行的操作结果一样,其中,后者把由object所引用的文件或文件夹作为参数传递。但是请注意,后两种替换方法能够复制多个文件或文件夹。
将指定文件或文件夹从一个位置复制到另一位置。
object.Copy( destination[, overwrite] );
参数说明:
object:必选项。应为File或Folder对象的名称。
destination:必选项。复制文件或文件夹的目的位置。不允许通配字符。
overwrite:可选项。Boolean值,如果要覆盖已有文件或文件夹,则为True(默认);否则,则为False。
(2)Delete方法
删除指定的文件或文件夹。
object.Delete( force );
参数说明:
object:必选项。应为File或Folder对象的名称。
force:可选项。Boolean值,如果要删除设置了只读属性的文件或文件夹则为True;否则为False(默认)。
(3)Move方法
将指定文件或文件夹从一个位置移动到另一个位置。
object.Move( destination );
参数说明:
object:必选项。应为File或Folder对象的名称。
destination:必选项。移动文件或文件夹的目的位置。不允许通配字符。
(4)OpenAsTextStream方法
打开指定的文件并返回一个TextStream对象,可以通过这个对象对文件进行读、写或追加。
object.OpenAsTextStream([iomode, [format]])
参数说明:
object:必选项。应为File对象的名称。
iomode:可选项。指明输入/输出的模式。可以是三个常数之一:ForReading、ForWriting或ForAppending。
format参数的相关设置
常数 | 值 | 说明 |
---|---|---|
ForReading | 1 | 以只读方式打开。不能写这个文件 |
ForWriting | 2 | 以写方式打开文件。如果存在同名文件,那么它以前的内容将被覆盖 |
ForAppending | 8 | 打开文件并从文件末尾开始写 |
iomode参数可以是下列设置中的任一种:
常数 | 值 | 说明 |
---|---|---|
TristateDefault | -2 | 使用系统默认值打开 |
TristateTrue | -1 | 以Unicode方式打开文件 |
TristateFalse | 0 | 以ASCII方式打开文件 |
(2).File对象的属性
(1)Attributes属性
设置或返回文件或文件夹的属性。根据不同属性为读/写或只读。
object.Attributes [= newattributes]
参数说明:
newattributes参数可以是下列各值或者这些值的任意逻辑组合:
常数 | 值 | 描述 |
---|---|---|
Nornal | 0 | 普通文件。不设置属性 |
ReadOnly | 1 | 只读文件。设置为读/写 |
Hidden | 2 | 隐藏文件。设置为读/写 |
System | 4 | 系统文件。设置为读/写 |
Volume | 8 | 磁盘驱动器卷标。属性为只读 |
Directory | 16 | 文件夹或目录。属性为只读 |
Archive | 32 | 文件在上次备份后已经修改。设置为读/写 |
ALias | 64 | 链接或者快捷方式。属性为只读 |
Compressed | 128 | 压缩文件。属性为只读 |
(2)DateCreated属性
返回指定文件或文件夹的创建日期和时间。只读。
object.DateCreated
object应为File或Folder对象。
(3)DateLastAccessed属性
返回最后访问指定文件或文件夹的日期和时间。只读。
object.DateLastAccessed
object应为File或Folder对象。
(4)DateLastModified属性
返回最后修改指定文件或文件夹的日期和时间。只读。
object.DateLastModified
object应为File或Folder对象。
(5)Name属性
设置或返回指定文件或文件夹的名称。 读/写。
object.Name [= newname]
Name属性包括了以下部分:
object:必选项。应为File或Folder对象的名称。
newname:可选项。如果提供了这个部分,newname将成为指定的object的新名称。
(6)Size属性
对于文件,以字节为单位返回指定文件的大小。对于文件夹,以字节为单位返回文件夹中包含的所有文件和子文件夹的大小。
object.Size
object应为File或Folder对象。
(7)Type属性
返回关于文件或文件夹类型的信息。例如,对于以.TXT结尾的文件将返回“文本文档”。
object.Type
object应为File或Folder对象。
(8)ShortName属性
返回短名称,这些短名称由需要以前的8.3命名规范的程序使用
object.ShortName
object应为File或Folder对象。
(9)Drive属性
返回指定文件或文件夹所在驱动器的驱动器号。只读。
object.Drive
object应为File或Folder对象。
(10)ParentFolder属性
返回指定文件或文件夹的父文件夹对象。只读。
object.ParentFolder
object应为File或Folder对象。
(11)Path属性
返回指定文件、文件夹或驱动器的路径。
object.Path
object总是为File、Folder或Drive对象。
驱动器字母后不包括根驱动器。例如,C驱动器的路径是C:,而不是C:\。
(12)ShortPath属性
返回短路径名,这些短文件名由需要以前的8.3文件命名规范的程序使用。
object.ShortPath
object应为File或Folder对象。
8、 Folder对象
(1).动态创建Folder对象
使用Folder对象对指定文件夹的所有属性进行访问,必需要创建Folder对象,该对象是通过FileSystemObject对象的GetFolder()方法来创建的。
GetFolder()方法根据指定的路径中的文件返回相应的Folder对象。
object.GetFolder(filespec)
参数说明:
object:必选。FileSystemObject的名称。
Filespec:必选。指定文件夹的路径(绝对或相对路径)。
例如,将qq.txt文件以File对象进行实例化。
代码如下:
Var fso=new ActiveXObject("Scripting.FileSystemObject");
Var s=fso.GetFolder("E:\\word\\JavaScript");
(2).Folder对象的方法与属性
Folder对象的属性和方法与File对象中的属性和方法基本相同,只是其功能针对的不是文件而是文件夹。在Folder对象中有两个属性是File对象所没有的,下面对其进行介绍。
(1)Files属性
返回一个Files集合,由指定文件夹中包含的所有File对象组成,包括设置了隐藏和系统文件属性的文件。
object.Files
object应为Folder对象。
(2)IsRootFolder属性
如果指定的文件夹是根文件夹则返回True;否则返回False。
object.IsRootFolder
object应为Folder对象。
二、JavaScript对象访问语句
1、For……in循环语句
for (variable in object ) {
…statement
}
参数说明:variable是一个变量名,声明一个变量的var语句,数组的一个元素或者是对象的一个属性(例如,它应该是一个适用于赋值表达式左边的值);object是一个对象名,或者是计算结果为对象的表达式。statement通常是一个原始语句或者语句块,由它构成循环的主体。
2、With语句
with(object){
stataments
}
object指定在statements块中没有引用的情况下使用哪个对象引用。
三、JavaScript中的数组
1、定义数组
四种方式:定义空数组、指定数组长度、指定数组元素、直接定义数组
定义空数组
使用不带参数的构造函数可以定义一个空数组,在定义空数组后再向数组中添加数组元素。
语法格式:
arrayobject=new array();
例如:
Var arr=new array();
Arr[0]=“a”;
Arr[1]=“b”;
指定数组长度
在定义数组的同时可以指定数组元素的个数。此时并没有为数组元素赋值,所有数组元素的值都是undefined。
语法格式:
arrayobject=new array(size);
如: a=new array(2);
a[0]=“a”;
a[1]=“b”;
指定数组元素
在定义数组的同时可以直接给出数组元素的值。此
时数组的长度就是在括号中给出的数组元素的个数。
语法格式:
arrayobject=new array(element,element2…);
var arr=new array(“a”,”b”);
直接定义数组
直接将数组元素放在一个中括号中,元素与元素之间
用逗号分隔。
语法格式:
arrayobject=[element1,element2,element3,…];
如:
var arr=[“a”,”b”];
2、Array对象的输入输出
Array对象的输入
向Array对象中输入数组元素有3种方法;
(1)在定义Array对象时直接输入数据元素
这种方法只能在数组元素确定的情况下才可以使用。
例如,在创建Array对象的同时存入字符串数组。代码如下:
arrayObj = new Array("a","b","c","d")
(2)利用Array对象的元素下标向其输入数据元素
该方法可以随意的向Array对象中的各元素赋值,或是修改数 组中的任意元素值。
例如,在创建一个长度为7的Array对象后,向下标为3和4的元素中赋值。
arrayObj = new Array(7)
arrayObj[3] = "a";
arrayObj[4] = "b";
(3)利用for语句向Array对象中输入数据元素
该方法主要用于批量向Array对象中输入数组元素,一般用于向Array对象中赋初值。
例如,使用者可以通过改变变量n的值(必须是数值型),给数组对象arrayObj赋指定个数的数值元素。代码如下:
Var n=7
arrayObj = new Array()
for (var i=0;i<n;i++){
arrayObj[i]=i
}
Array对象的输出
将Array对象中的元素值进行输出有3种方法:
(1)用下标获取指定元素值
该方法通过Array对象的下标,获取指定的元素值。
例如,获取Array对象中的第3个元素的值。代码如下:
arrayObj = new Array("a","b","c","d")
var s=arrayObj[2]
(2)用for语句获取数组中的元素值
该方法是利用for语句获取Array对象中的所有元素值。
例如,获取Array对象中的所有元素值。代码如下:
arrayObj = new Array("a","b","c","d")
for (var i=0;i<arrayObj.length;i++){
str=str+arrayObj[i].toString();
}
document.write(str);
//运行结果:abcd。
(3)用数组对象名输出所有元素值
该方法是用创建的数组对象本身显示数组中的所有元素值。
例如,显示数组中的所有元素值。代码如下:
arrayObj = new Array("a","b","c","d")
document.write(arrayObj);
//运行结果:abcd。
3、Array对象的属性
(1)length属性
该属性用于返回数组的长度。
语法格式:
array.length
参数说明:
array:数组名称。
例如,获取已创建的字符串对象的长度。代码如下:
var arr=new Array(1,2,3,4,5,6,7,8);
document.write(arr.length);
运行结果:8。
(2)prototype属性
该属性可以为数组对象添加自定义的属性或方法。
语法格式:
Array.prototype.name=value;
4、Array对象的方法
方法 | 说明 |
---|---|
concat() | 连接两个或更多的数组,并返回结果 |
pop() | 删除并返回最后一个元素 |
push() | 向数组的末尾添加一个或多个元素,并返回新的长度 |
shift() | 删除并返回第一个元素 |
splice() | 删除元素,并向数组添加新元素 |
unshift() | 向开头添加一个或者多个元素,并返回新的长度 |
reverse() | 颠倒数组中元素的顺序 |
sort() | 对数组元素进行排序 |
slice() | 从某个已有的数组返回选定的元素 |
toSource() | 代表对象的源代码 |
toString() | 把数组转换成字符串,并返回结果 |
toLocaleString() | 把数组转换本地数组,并返回结果 |
join() | 把数组的所有元素放在一个字符串,元素通过指定的分隔符分隔 |
valueOf() | 返回数组对象的原始值 |
5、数组的添加和删除
数组的添加和删除可以使用concat()、pop()、push()、shift()、splice()和unshift()方法实现。
(1).concat()方法
该方法用于将其他数组连接到当前数组的尾端。
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数说明:
arrayObject:必选项。数组名称。
arrayX:必选项。该参数可以是具体的值,也可以是数组对象。
(2).shift()方法
该方法用于把数组中的第一个元素从数组中删除,并返回删除元素的值。
arrayObject.shift()
参数说明:
arrayObject:必选项,数组名称。
返回值:在数组中删除的第一个元素的值。
(3).pop()方法
该方法用于删除并返回数组中的最后一个元素。
arrayObject.pop()
返回值:Array对象的最后一个元素。
(4).push()方法
该方法向数组的末尾添加一个或多个元素,并返回添加后的数组长度。
arrayObject.push(newelement1,newelement2,....,newelementX)
push()方法中各参数的说明如表所示。
参数 | 说明 |
---|---|
arrayObject | 必选项。数组名称 |
newelement1 | 必选项。要添加到数组的第一个元素 |
newelement2 | 可选项。要添加到数组的第二个元素 |
newelementX | 可选项。可添加多个元素 |
(5).unshift()方法
该方法向数组的开头添加一个或多个元素。
arrayObject.unshift(newelement1,newelement2,....,newelementX)
unshift()方法中各参数的说明如表所示。
参数 | 说明 |
---|---|
arrayObject | 必选项。数组名称 |
newelement1 | 必选项。向添加到数组的第一个元素 |
newelement2 | 可选项。向添加到数组的第二个元素 |
newelementX | 可选项。可添加多个元素 |
(6) .splice()方法
该方法用于删除数组中指定位置的元素,还可以向数组中的指定位置添加新元素。
arrayObject.splice(start,length,element1,element2,…)
6、设置数组的排列顺序
(1).reverse()方法
该方法用于颠倒数组中元素的顺序。
arrayObject.reverse()
参数说明:
arrayObject:必选项,数组名称。
(2).sort()方法
该方法用于对数组的元素进行排序。
arrayObject.sort(sortby)
参数说明:
arrayObject:必选项。数组名称。
sortby:可选项。规定排序的顺序,必须是函数。
⚠️如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,也就是按照字符的编码顺序进行排序。如果想按照其他标准进行排序,就需要提供比较函数。
7、 获取数组中的某段数组元素
获取数组中的某段数组元素主要用slice()方法实现。
slice()方法可从已有的数组中返回选定的元素。
arrayObject.slice(start,end)
参数说明:
start:必选项。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。
end:可选项。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它将从数组尾部开始算起。
返回值:返回截取后的数组元素,该方法返回的数据中不包括end索引所对应的数据。
8、数组转换成字符串
(1).toString()方法
该方法可把数组转换为字符串,并返回结果。
arrayObject.toString()
参数说明:
arrayObject:必选项。数组名称。
返回值:以字符串显示arrayObject。返回值与没有参数的join()方法返回的字符串相同。
(2).toLocaleString()方法
该方法将数组转换成本地字符串。
arrayObject.toLocaleString()
参数说明:
arrayObject:必选项,数组名称。
返回值:本地字符串。
( 3).join()方法
该方法将数组中的所有元素放入一个字符串中。
arrayObject.join(separator)
参数说明:
separator:可选项。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
返回值:返回一个字符串。该字符串是把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。