赵工的个人空间


专业技术部分转网页计算转业余爱好部分


 编程语言

常用的编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN


首页 > 专业技术 > 编程语言 > JavaScript内置对象和方法
JavaScript内置对象和方法
  1. Math对象:
  2. Number对象:
  3. Date对象:
  4. RegExp对象:
  5. String对象:
  6. Array对象:
  7. Object对象:
  8. Function对象:

JavaScript内置对象,是指JavaScript语言提供的对象,包括Math、Date、String、Array、Number、Boolean、Function、Global、Object、RegExp和Error等实现一些最常见功能的对象。

1.Math对象:

Math对象的属性是数学中常用的常量,其方法是一些非常有用的数学函数。如表:

属性 说明
E 自然对数的底,约为2.71828
LN2 2的自然对数
LN10 10的自然对数
LOG2E 以2为底的自然对数E的对数
LOG10E 以10 为底的自然对数的对数
PI 圆周率,约为3.14159265
SQRT1_2 1/2的平方根
SQRT2 2的平方根
方法 说明
abs(x) 返回x的绝对值
acos(x) 返回x的反余弦值
asin(x) 返回x的反正弦值
atan(x) 返回x的反正切值
atan2(y,x) 返回由X轴到(y,x)点的角度(以弧度为单位)
ceil(x) 返回大于等于x的最小整数
cos(x) 返回x的余弦值
exp(x) 返回自然对数E的x次方
floor(x) 返回小于等于x的最大整数
log(x) 返回x的自然对数
max(x,y) 返回x,y中的最大值
min(x,y) 返回x,y中的最小值
pow(x,y) 返回x的y次方
random() 返回一个0至1之间的伪随机数
round(x) 返回x四舍五入的取整值
sin(x) 返回x的正弦值
sqrt(x) 返回x的平方根
tan(x) 返回x的正切值

JavaScript中,Math是对一个已创建好的Math对象的引用,因此不用先使用new创建。在调用Math对象的属性和方法时,直接写成“Math.属性”和“Math.方法”即可。

2.Number对象:

Number对象用于存放一些表示极端数值的属性,如表:

属性 说明
MAX_VALUE 返回JavaScript可以处理的最大数值1.7976931348623157e+308
MIN_VALUE 返回JavaScript可以处理的最小数值5e-324
NaN 表示非数值
NEGATIVE_INFINITY 表示数值为负无穷大
POSITIVE_INFINITY 表示数值为正无穷大

Number也是对一个已创建好的Number对象的引用,不必使用new来创建。

3.Date对象:

Date对象主要提供获取和设置日期与时间的方法,如表:

方法 说明
getYear() 返回日期的年份值,是2位或4位整数
setYear(x) 设置年份值x
getFullYear() 返回日期的完整年份值,是4位整数
setFullYear(x) 设置完整年份值x
getMonth() 返回日期的月份值,介于0~11
setMonth(x) 设置月份值x
getDate() 返回日期的日期值,介于1~31
setDate(x) 设置日期值x
getDay() 返回0~6之间的整数,表示一周的某天,0为星期天
getHours() 返回时间的小时值,介于0~23
setHours(x) 设置小时值x
getMinutes() 返回时间的分钟值,介于0~59
setMinutes(x) 设置分钟值x
getSeconds() 返回时间的秒数值,介于0~59
setSeconds(x) 设置秒数值x
getMilliseconds() 返回时间的毫秒值,介于0~999
setMilliseconds(x) 设置毫秒值x
getTime() 返回整数值,代表从1970年1月1日到当前的时间的毫秒值,负值代表之前的时间,范围大概是之前285年到之后616年。
setTime(x) 使用毫秒数x设置日期和时间
toLocaleString() 返回日期的字符串表示,格式按系统当前区域设置来确定。类似方法还有toLocaleDateString()、toLocaleTimeString()
toString() 返回日期的字符串表示,格式采用JavaScript默认格式

注:Date对象还有一组与表中方法对应的UTC方法,处理“全球标准时间”。
要使用Date对象,必须先使用new创建,创建的常见方式有3种:
①不带参数:var today = new Date(); //创建一个含有系统时间的Date对象。
②创建一个指定日期的Date对象:var theDate = new Date(2009,9,1);//时分秒毫秒都为零
③创建一个指定时间的Date对象:var theTime = new Date(2009,9,1,10,20,30,50);//确切时间

4.RegExp对象:

JavaScript中,使用RegExp类的exec()和test()方法可以进行正则表达式匹配,除此之外,创建RegExp实例也可以用在String类的match()、repalce()、search()和splice()方法中,用以匹配、替换、搜索或者拼接字符串。

1)创建一个RegExp对象:

要想使用正则表达式,首先要创建一个RegExp对象,然后调用RegExp类的exec()和test()方法进行正则表达式匹配。创建RegExp对象的语法格式:
  var re=/pattern/[flags]
  var re=new RegExp("pattern",["flags"])
创建RegExp对象有两种方法,一种是直接使用正则表达式(以两个斜杠包围)创建,另一种是使用JavaScript内建的RegExp类创建。其中,pattern是要使用的正则表达式模式;flags是可选项,用于标示正则表达式,也被称为模式修正符,可选值为:

标示 对应属性 功能说明
g global 全局标示,表示全文查找出现的所有pattern,直到找不到为止
i ignoreCase 表示匹配时不区分大小写
m multiline 更改^和$的含义,使他们分别在1行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。在此模式下,$的精确含义是匹配\n之前的位置以及字符串结束前的位置

2)使用exec()进行正则匹配:

exec()方法是用正则表达式模式在字符串中运行匹配,并返回匹配结果的一个数组。语法:
  re.exec(str)
参数str是要在其中执行匹配的String对象或字符串文字。如果没有找到匹配,返回null;如果找到匹配,则返回一个数组,并且更新RegExp对象的属性,以反映匹配结果。
如果RegExp对象构造时设置了全局标示,exec()方法将从lastIndex属性值标示的位置开始查找;没有设置全局标示,exec()忽略lastIndex的值,而从字符串的起始位置开始搜索。
exec()方法返回的数组有input和index两个属性,其中input属性包含了整个被查找的字符串,index属性整个被查找字符串中被匹配字符串的位置。正则表达式对象有lastIndex和source两个属性,lastIndex属性包含了匹配中最后一个字符的下一个位置,source属性中包含正则表达式模式字符串。示例:
  var oString="ECMAScript version 5.0 provides many new features.";
  var re=/\w+/g; //定义正则表达式模式文字
  //var re=new RegExp("w+","g"); //也可以这样构造
  var oArray;
  while((oArray=re.exrc(oString))!=null) {
     document.write(oArray.index+"-"+re.lastIndex+"\t"+oArray+"<br\>");
  }
正则表达式/\w+/表示匹配多个任何英文字母和数字字符,也就是一个单词。如果没有使用全局标示,匹配的就是字符串中的第1个单词;用了全局标示g,将查找字符串中的所有单词。

3)使用test()方法:

test()方法检查字符串中是否存在一个匹配指定模式的字符串。如果存在,返回true;否则,返回false。语法格式:
  re.test(str)
参数str是要在其中执行匹配的String对象或字符串文字。

4)正则表达式:

一个正则表达式是由普通字符以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
其中的普通字符包括所有的大写和小写字母字符、所有数字、所有标点以及一些符号;元字符则具有特殊含义,包括()、[]、{}、\、^、$、*、+、?、.、|、-、?:、?=、?!。
 一个正则表达式可能简单,也可能复杂,但都是由基本语法组成的。
正则表达式可以明确描述文本字符串中的模式,其作用一般是验证文本值是否符合特定模式或者替换与特定模式匹配的部分文本值。

5)简单的正则表达式语法:

最简单的正则表达式由普通字符组成,或者加上简单的元字符,形成特殊含义:

模式 描述
c C表示一个字符或多个字符,普通字符包括所有的大写和小写字母、所有数字、所有标点符号以及一些符号。例如,/b/匹配字符串b,/abc/匹配字符串abc
{n} n为非负整数,表示匹配确定的n次。例如,/o{2}必须是两个连续的o
{n,} n为非负整数,表示至少匹配n次。o{1,}等价于o+;o{0,}等价于o*;
{n,m} m,n均为非负整数,且n<=m,表示最少匹配n次且最多匹配m次
\ 将下一个字符标记为特殊字符、原义字符、反向引用或八进制转义符。/\n/匹配换行符,/\b/匹配一个数字字符;序列/\\/匹配\;/\(/匹配(
^ 匹配输入字符串的开始位置,如果设置修正模式m,也匹配换行符和回车符后的位置
$ 匹配输入字符串的结束位置,如果设置修正模式m,也匹配换行符和回车符前的位置
* 匹配前面的字符或子表达式零次或多次。例如,/zo*/能匹配z以及zoo
+ 匹配前面的字符或子表达式1次或多次。例如,/zo+/能匹配zo以及zoo
? 匹配前面的字符或子表达式零次或1次。例如,/zo?/能匹配z以及zo
? 当该字符紧跟在任何1个非限制字符后面时,匹配模式为“非贪心的”
. 匹配除\n之外的任何单个字符。例如,/a.c/匹配aac、abc、acc等
x|y 匹配x或y。例如,z|food匹配z或food,(z|f)ood匹配zood或food或z或f
[xyz] 字符集合,匹配所包含的任意一个字符。例如,/[abc]/可以匹配plain中的a,bea中的b
[^xyz] 反向字符集合,匹配未包含的任意一个字符。例如,/[abc]/可以匹配plain中的p
[a-z] 字符范围,匹配指定范围内的任意1个字符。例如,[a-z]匹配任意小写字母字符
[^a-z] 反向字符范围,匹配不在指定范围内的任意1个字符。例如,[^a-z]匹配非小写字母的字符

注:*、+和?限定符都称为“贪心的”,也就是说它们尽可能多地匹配字符。当?字符紧跟在任何1个其他限制符后面时,匹配模式是“非贪心的”,匹配尽可能短的字符。含义说明:

模式 描述
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n~m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
{n}? 重复仅n次,但尽可能少重复

6)正则表达式转义语法:

反斜杠“/”被称为转义字符,下表列出了转义后的正则表达式匹配含义:

模式 描述
\b 匹配1个单词,该单词必须位于边界,也就是单词边必须有空格。例如,/er\b匹配never
\B 匹配非单词边界,与\b恰恰相反。例如,/er\B匹配verb,而不能匹配never
\cx 匹配由x指定的ASCII控制字符,x的值必须为英文大小写字母。例如,/\cC/匹配Ctrl+C
\d 匹配1个数字字符,等价于[0-9]。例如,/^\d+$/匹配非负整数,/^((\-\d+)|(0+))$/匹配非正整数
\D 匹配1个非数字字符,等价于[^0-9]
\f 匹配1个换页符,等价于\x0c和\cL
\n 匹配1个换行符,等价于\x0a和\cJ
\r 匹配1个回车符,等价于\x0d和\cM
\s 匹配任何单个空白字符,包括空格、制表符、换页符等,等价于[\f\n\r\t\v]
\S 匹配任何单个字符,不包括空白符,等价于[^\f\n\r\t\v]
\t 匹配1个制表符,等价于\x09和\cI
\v 匹配1个垂直制表符,等价于\x0b和\cK
\w 匹配包括下划线的任何单词字符,等价于[A-Za-z0-9_]
\W 匹配任何非单词字符,等价于[^A-Za-z0-9_]
\xnn 匹配nn,此处nn是1个16进制转义码。例如,/\x41匹配A
\num 匹配num,这里num是1个正整数,将和左侧的第num个括号内的正则表达式联用,也就是反向引用。
\n 标示1个八进制转义码或1个反向引用。如果\n之前至少n个捕获子表达式,则n为反向引用,否则为1个八进制转义值
\nm 标示1个八进制转义码或反向引用。如果\nm之前至少nm个捕获子表达式,则nm为反向引用,后面跟m数字字符,否则为1个八进制转义值
\nml 当n是八进制数0~3,m和l是八进制数0~7时,匹配八进制转义码nml
\unnnn 匹配nnnn,其中nnnn是以4位16进制表示的Unicode字符。例如,\u00A9,匹配版权符号©
\0 匹配字符NUL,即4位16进制数\unnnn或者两位16进制数\x00

表中,\num示例:/apple(,)\sorange\1/匹配“apple,orang,cherry,peach.”中的“apple,orang,”,其中的\1表示左侧第1个括号内的正则表达式,等同于/apple(,)\sorange,\。
而/(.)\1匹配两个连续的相同字符,因为/(.)/匹配任意单个字符,/\1/又匹配前面的一次。
·/(.)(.)\2/,这里\2引用第2个括号内的单个字符,匹配结果如ABB,而不是AAB
·/(.)(.)\1/,这里\1引用第1个括号内的单个字符,匹配结果如AAB,而不是ABB
·/(.)(.)\2\1/,匹配结果类如ABBA
·/(.)(.)\1\2/,匹配结果类如ABAB
·/(.)(.)\1\1/,匹配结果类如AAAB
·/(.)(.)\2\2/,匹配结果类如ABBB
如果想查找元字符本身,就必须使用转义字符“\”来取消这些字符的特殊含义,例如“\.”和“\*”。如果要查找“\”本身,则要使用“\\”。例如,/www\.dwenzhao\.cn匹配www. dwenzhao.cn,而/c:\\Windows/匹配c:\Windows。

7)正则表达式捕获语法:

可以使用多个正则表达式构成一个模式,然后将这个模式使用括号包围起来作为一个单一的正则表达式,该单一的表达式可以和其他表达式组成另一个更宽广的模式。
括号内也可以使用一些元字符关键字对模式进行适当的运算,模式和元字符含义如下表:

模式 描述
(pattern) 匹配pattern并捕获该匹配的子表达式。可以使用$0…$9(或使用[0]…[9])属性从结果匹配集合中检索捕获的匹配
(?:pattern) 匹配pattern但不捕获匹配的结果。例如,/industry(?:y|ies)
(?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串,是非捕获匹配。预查不消耗字符。例如,/Windows(?=95|98|NT|2000)/
(?!pattern) 执行反向预测先行搜索的表达式,该表达式匹配不处于匹配pattern的字符串的起始点的搜索字符串,是一个非捕获匹配。也不消耗字符串。例如,/Windows(?!95|98|NT|2000)/

圆括号包围的表达式称为子表达式,包围在圆括号中的正则表达式也称为捕获语法,这些表达式还可以供后面使用,例如\num表达式和replace()方法等。示例:
  /^(Chapte|Section)[1-9][0-9]{0,1}$/
  /^Chapte|Section[1-9][0-9]{0,1}$/
前面1条是匹配位于1行的开始且后跟一个或两个数字的Chapter或Section;后面1条表示要么匹配1行的开始是Chapter,要么匹配1行的中间或结束位置是Section,后面跟两个数字。

8)优先权顺序:

在构造正则表达式之后,就可以像数学表达式一样求值,从左至右并按照一个优先权顺序来求值。下表列出从最高优先级到最低优先级的各种正则表达式操作符:

操作符 描述
\ 转义符
()、(?:)、(?=)、(?!)、[] 圆括号和方括号
*、+、?、{n}、{n,}、{n,m} 限定符
^、$、\任何元字符 位置和顺序
| 或运算

5.String对象:

String提供了JavaScript的字符串处理的属性和方法:

属性 说明
length 返回字符串中字符的个数(一个汉字也计数为1个字符)
方法 说明
charAt() 返回指定索引位置处的字符,第一个字符的索引为0
charCodeAt() 返回给定索引处的字符的Unicode代码值
concat() 组合两个字符串文本并返回新的字符串
formCharCode() 返回一个由参数指定的Unicode代码代表的字符
indexOf() 查找字符串并返回参数中指定值的索引,找不到返回-1
lastIndexOf() 返回子字符串在字符串中指定开始点前最后一次出现的索引
localeCompare() 比较两个或更多个字符串的排列顺序,返回整数形式的结果
match() 查找比较字符串,可以使用正则表达式
replace() 替换匹配的字符串,可以使用正则表达式
search() 搜索比较字符串,可以使用正则表达式
slice() 提取字符串的一部分,并作为新字符串返回
split() 把字符串分隔成子字符串组成的数组
substr(start,len) 返回一个从指定位置开始的指定长度的子字符串
toJSON() 序列化为JSON格式字符串返回
toLowerCase() 返回一个字符串,其中的字母被转换为小写字母
toUpperCase() 返回一个字符串,其中的字母被转换为大写字母
toLocaleLowerCase() 把字符串转换成区域化形式,并将字符串转换成小写
toLocaleUpperCase() 把字符串转换成区域化形式,并将字符串转换成大写
toString() 返回String对象的初始值
trim() 删除字符串两端的空白
valueOf() 返回String对象的初始值

若要创建一个String对象,既可以使用new创建,也可以直接将字符串赋值给变量。
例如:newstring="This is a new string."与newstring= new String("This is a new string.")等价。
还可以创建HTML格式的字符串:

方法 说明
anchor 创建HTML命名锚点
link 创建一个超链接
big 创建一个HTML格式字符串,例如<big>string</big>
blink 创建一个HTML格式字符串,例如<blink>string</blink>
bold 创建一个HTML格式字符串,例如<b>string</b>
fixed 创建一个HTML格式字符串,例如<tt>string</tt>
fontsize 创建一个HTML格式字符串,例如<fontsize=6>string</fontsize>
italics 创建一个HTML格式字符串,例如<i>string</i>
small 创建一个HTML格式字符串,例如<small>string</small>
strike 创建一个HTML格式字符串,例如<strike>string</strike>
sub 创建一个HTML格式字符串,例如<sub>string</sub>
sup 创建一个HTML格式字符串,例如<sup>string</sup>

示例:document.writeln(myString.anchor("section1"));
      document.write("欢迎访问"+mySite.link(mySiteURL));
      document.write("我的BLOG".bold());

6.Array对象:

一个变量如果是数组,就同时可以存储多个值,即数组变量包含多个子变量,而每个子变量的作用与普通变量一样,既可以被赋值,也可以从中取出值。数组中的子变量称为数组元素变量(简称数组元素),数组中数组元素的个数称为数组大小(或称数组长度)。

1)创建数组对象:

创建一个数组有3种方式:
  var arrayname = new Array();
  var arrayname = new Array(arraysize);
  var arrayname = new Array(element0,element1,…elementN);
其中,arraysize为整数,用来定义数组元素的个数;element0,element1,…elementN是一系列值,可以是数字、名称或在数组中定义其他元素。
也可以使用方括号运算符“[]”来实例化一个数组。示例:
  var arrayname = ["January","February","March","April"];
在JavaScript中,不同数组元素通过下标加以区别,一个数组元素由数组名、一对方括号[]和这对括号中的下标组合起来表示。对于数组对象arrayname,包含数组元素arrayname[0]、arrayname[1]、arrayname[2]、......、arrayname[arraysize-1]。下标是从0开始的,下标是按顺序排列的数字,这种数组也被称为索引数组。
JavaScript数组的长度可以自由扩展,即使使用长度值创建的数组,也是可变的。如果数组中某个小于长度的元素未定义,那么就会为该元素自动赋给undefined值,而当undefined值转换成字符串时,自动转换成null。

2)数组元素的常规赋值和取值操作:

使用数组元素类似于使用普通变量。示例:
var  classmates = new Array[4];
classmates[0]="Tom";
classmates[1]="Jone";
classmates[3]=classmates[1];
JavaScript允许new Array创建对象时直接给出数组元素的值,此时数组长度就是括号中给出的数组元素的个数。示例:
classmates = new Array["Tom","Jone","Sam","Marry"];
如果在new Array时没有任何数组元素,数组长度为0。因为JavaScript有自动扩展功能,空数组也可以赋值,而没有赋值过的元素被初始化为null。如:
classmates = new Array();
classmates[8]="Peter";

3)多维数组:

JavaScript不能直接声明多维数组,但可以通过数组嵌套来实现多维数组。示例:
  var twoDarray = new Array(new Array("one","two"),new Array("three","four"));
要检索多维数组的元素,可以在顶层数组的名称之后使用多个数组访问运算符“[]”:
  document.write(twoDArray[0][0]);
也可以使用循环语句遍历多维数组,例如:
  var outlength=twoDArray.length;
  for (var i=0;i<outlength;i++) {
     var inlength=twoDArray[i].length;
     for (var j=0;j<inlength;j++) {
       document.write(twoDArray[i][j]+"<br />");
     }
  }

4)使用Array()和Object()传递数组参数:

使用Array()传递数组参数时,要注意。示例:
  var _arr1=["a","b","c"];
  var _arr2=Array( _arr1);
这里,Array(var _arr1)其实是只创建了一个仅有一个元素的复合数组,_arr2[0]=_arr1。
用Object()传递数组参数其实是创建了一个对象副本。示例:
  var _obj1=["a:1","b:2","c:3"];
  var _obj2=Object(_obj1);
结果是_obj1===_obj2。

5)使用for...in语句:

JavaScript的for...in语句专门处理与数组和对象相关的循环操作,依次对数组中的每个元素执行一条或多条语句。格式为:
  for (variable in array_name) 循环体语句;
其中,variable将遍历数组中的每个索引,其执行过程为:
①variable被赋值为数组的第1个下标索引(通常是0);
②如果variable值是一个有效的下标索引(小于数组长度),就执行步骤③,否则退出循环。
③执行循环语句;
④variable变量被赋值为数组的下一个下标索引,转去执行步骤②进行循环判断。
注意,数组下标是字符串类型的,使用时往往需要使用parseInt函数。

6)Array对象的常用属性和方法:

属性 说明
length 返回数组中数组元素的个数,即数组长度。
方法 说明
concat() 连接参数并把它作为新数组返回
every() 对数组中的每一项执行测试函数,直到获得对指定的函数返回false的项
filter() 对数组中的每一项执行测试函数,并构造1个新数组,其中的所有项都对指定的函数返回true
forEach() 对数组中的每一项执行函数
indexOf() 使用全等运算符搜索数组中的项,并返回该项的索引位置
isArray() 判断参数是否一个数组
join() 把数组中的所有元素连接成一个字符串
lastIndexOf() 使用全等运算符搜索数组中的项(从最后1项向前搜索),并返回匹配项的索引位置
map() 对数组中的每一项执行函数并构造1个新数组,其中包含与原始数组中的每一项的函数结果相对应的项
pop() 删除数组中的最后1个元素
push() 把1个或更多个元素添加到数组的末尾并返回数组的新长度
reduce() 从左到右,使用函数对比数组中的两个值,删除其中1个,仅留1个
reduceRight() 从右到左,使用函数对比数组中的两个值,删除其中1个,仅留1个
reverse() 反转数组元素的位置
shift() 删除数组中的第1个元素,并返回该元素的值
slice() 截取数组中的一个片断,并把该片断作为新数组返回
some() 对数组中的每一项执行测试函数,直到获得对指定的函数返回true的项
sort() 对数组进行原地排序
sortOn() 根据数组中的一个或多个字段对数组中的元素进行排序
splice() 向数组中添加元素或者从数组中移除元素
toLocaleString() 返回一个字符串,表示指定数组中的元素,各个元素间用逗号分隔
toString() 返回一个字符串,该字符串包含数组中所有元素,各个元素间用逗号分隔
unshift() 把一个或更多元素添加到数组的开端并返回数组的新长度

其中,斜字体的项为ECMAScript5新增的方法。

7)静态属性:

Array类有几个静态属性,用在排序操作中。见下表:

属性 说明
CASEINSENSITIVE 在排序方法中,此常数指定不区分大小写的排序
DESCENDING 在排序方法中,此常数指定降序排序
NUMERIC 在排序方法中,此常数指定数字排序
RETURNINDEXEDARRAY 指定排序返回索引数组作为调用sort()或sortOn()方法的结果
UNIQUESORT 在排序方法中,此常数指定唯一的排序要求

8)复合数组:

复合数组,也称为关联数组、hash数组或映射。复合数组使用key而不是数字索引值来组织存储。每个key都是一个唯一的字符串,与一个值相关联并用于访问该值,而值可以是字符串、数字、Array、Object等任意数据类型。复合数组是key/值对的无序集合。
①使用Object创建复合数组:
Object是一切类的基类,可以用来创建复合数组。示例:
  var person=new Object();
  person.sex=”male”;
  person.age=28;
  person.birthday=new Date(1980,7,5);
也可以使用大括号“{}”实例化Object时指定key和值。示例:
  var person={sex:”male”,age:28,birthday:new Date(1980,7,5)};
这其实是使用Object的属性来实现复合数组,Object是动态类,可以随时添加属性。
运用点运算符和数组访问语法都可以访问key(属性)。示例:
  document.write(person.sex);
  document.write(person[“sex”]);
也可以使用数组访问语法设置key(属性)。示例:
  var person=new Object();
  person[“sex”]=”male”;
  person[“age”]=28;
  person[“birthday”]=new Date(1980,7,5);
②使用Array创建复合数组:
使用Array也可以创建复合数组。示例:
  var person=new Array();
  person[“sex”]=”male”;
  person[“age”]=28;
  person[“birthday”]=new Date(1980,7,5);
使用Array时不能用方括号运算符实例化数组时指定key和值。用Array创建了复合数组,但在使用时不能使用Array类的任何方法和属性。最好使用Object创建复合数组。
③遍历复合数组:
可以使用for…in循环和for each…in循环遍历复合数组。其中for…in循环用来基于key访问,而for each…in循环用来基于与每个key关联的值进行访问。示例:
  var person=new Object();
  person.sex=”male”;
  person.age=28;
  person.birthday=new Date(1980,7,5);
  var i;
  for (i in person) {
    document.write(i+”:”+person[i]+”<br />”);
  }
或者
  var person=new Object();
  person.sex=”male”;
  person.age=28;
  person.birthday=new Date(1980,7,5);
  var i;
  for each(i in person) {
    document.write(i+”<br />”);
  }

7.Object对象:

Object对象是一种特殊的内置对象,用于为所有JavaScript对象提供通用功能。

属性 说明
prototype 指定对象类型的原型引用
constructor 表示创建对象的构造函数
方法 说明
toString() 返回对象的字符串表示
valueOf() 返回对象的值
hasOwnProperty(proName) 指出一个对象是否含有指定名称的属性,返回一个布尔值
propertyIsEnumerable(proName) 判断指定属性是否可列举,一般自定义属性可列举,预定义属性不可列举

实际上,JavaScript的所有对象都是Object对象类的实例,因此任何对象都可以使用Object对象的属性和方法。不过,其他对象通常会重定义Object对象的方法。
可以通过创建Object对象定义新型对象,一般是先创建Object对象,再为该对象添加新型对象的属性和方法。示例:
  var person= new Object;
  person.name = "Tom";
  person.gender = "male";

8.Function对象:

在JavaScript中,任何函数都是Function对象。定义函数的方式有两种:一种是常用的普通格式,即使用function关键字隐式创建function对象;另一种是使用new关键字显式创建function对象。

1)显式创建Function对象:

显式创建function对象的格式为:
  var fun_name = new Function(arg1,arg2,...,argn,function_body);
其中,每个参数都是字符串,前n个参数表示函数的参数名,最后一个参数是函数体代码,而fun_name是函数对象变量名。
创建Function对象后,就可以像调用普通函数一样,使用函数对象变量名调用Function对象所定义的函数,即:
  fun_name (arg1,arg2,...,argn);

2)Function对象的属性和方法:

方法 说明
toString() 返回对象所定义的函数代码

3)隐式创建Function对象:

定义函数的普通格式是使用function关键字,这是隐式创建了一个Function对象。
  function fun_name(arg1,arg2,...,argn)
  {
    function_body;
  }

4)无名函数:

JavaScript可以定义一种无名函数,并将该无名函数赋值给一个变量。无名函数是指在使用function关键字定义函数时不指定函数名。示例:
  var Hello=function(msg)
   {
      document.writeln(msg);
   }
这与显式创建Function对象的效果基本一致:
   var Hello=new Function("msg","document.writeln(msg);")

 

Copyright@dwenzhao.cn All Rights Reserved   备案号:粤ICP备15026949号
联系邮箱:dwenzhao@163.com  QQ:1608288659