常用内置对象.docx

上传人:b****5 文档编号:6848724 上传时间:2023-01-11 格式:DOCX 页数:14 大小:44.65KB
下载 相关 举报
常用内置对象.docx_第1页
第1页 / 共14页
常用内置对象.docx_第2页
第2页 / 共14页
常用内置对象.docx_第3页
第3页 / 共14页
常用内置对象.docx_第4页
第4页 / 共14页
常用内置对象.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

常用内置对象.docx

《常用内置对象.docx》由会员分享,可在线阅读,更多相关《常用内置对象.docx(14页珍藏版)》请在冰豆网上搜索。

常用内置对象.docx

常用内置对象

4.常用内置对象

4.1.JavaScript对象概述

4.1.1.什么是JavaScript对象

JavaScript中的所有事物都是对象,比如字符串、数字、数组、日期等。

对象是拥有属性和方法的数据。

比如,我们声明如下变量:

vartxt="Hello";

上述代码运行时,实际上已经创建了一个JavaScript字符串对象,字符串对象拥有属性和方法。

比如,可以使用属性length获取字符串的长度(对于上面的字符串来说,length的值是5),也可以使用方法来操作字符串。

4.1.2.使用对象

1、访问属性

访问对象属性的语法是:

objectName.propertyName

比如,对于String对象,可以使用length属性来查找字符串的长度,代码如下所示:

varmessage="HelloWorld!

";

varx=message.length;

在以上代码执行后,x的值是12。

2、调用方法

还可以通过下面的语法调用方法:

objectName.methodName()

比如,可以使用String对象的toUpperCase()方法来把文本转换为大写:

varmessage="Helloworld!

";

varx=message.toUpperCase();

在以上代码执行后,x的值是:

HELLOWORLD!

4.1.3.常用内置对象

因为JavaScript中的所有事物都是对象,我们可以把JavaScript中的对象分为三类:

简单对象:

String、Number、Boolean

组合对象:

Array、Math、Date

复杂对象:

Function、Regex、Object等

4.2.String对象

4.2.1.String对象

创建String对象时,可以直接定义字符串类型的变量,或者创建一个String对象。

代码如下所示:

varstr1="helloworld";

varstr2=newString("helloword");

上述代码中,变量str1和str2都是String对象。

可以使用length属性来获取字符串的长度,代码如下所示:

alert(str1.length);

4.2.2.String对象的常用方法

String类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。

需要注意的是,JavaScript的字符串是不可变的,String类定义的方法都不能改变字符串的内容。

像String.toUpperCase()这样的方法,返回的是全新的字符串,而不是修改原始字符串。

String对象的常用方法有:

∙x.toLowerCase()、x.toUpperCase():

大小写转换方法;

∙x.charAt(index):

返回指定位置的字符;

∙x.charCodeAt(index):

返回指定位置字符的Unicode编码;

∙x.indexOf(findstr,index)、x.lastIndexOf(findstr,index):

获取指定字符;

∙lastIndexOf(str),最后一次出现的位置,没有就返回-1

∙x.substr(start[,length])截去字符串

∙x.substring(start,end):

获取子字符串;不包含结束位

∙x.replace(findstr,tostr):

替换子字符串;只更换第一个,建议使用正则表达式进行更换

∙x.replace(/xxx/g,’p’);正则表达式g:

全局:

设置为全部更换

∙x.split(bystr):

拆分子字符串。

∙x.replace(regExp,replacement),字符替换

4.2.3.String对象与正则表达式

String对象的replace、split、search和match方法经常结合正则表达式使用,以实现更为复杂的功能。

比如,查看如下代码:

varstr1="abc123def";

varstr2=str1.replace(/\d/gi,"*");

alert(str2);//abc***def

vararray=str1.match(/\d/g);

alert(array.toString());//1,2,3

varindex=str1.search(/\d/);

alert(index);//3

上述代码中,“/\d/g“是一个正则表达式,结合string对象的replace方法使用,将替换所有的数字;而match方法将返回所有的数字所组成的数组;search方法将返回复合条件的第一个子字符串的位置。

4.3.Array对象

4.3.1.Array对象

Array对象用于在单个的变量中存储多个值。

创建Array对象的语法如下所示:

newArray();

var数组名称=[值,……];

如果调用构造函数Array()时没有使用参数,那么返回的数组为空,length字段为0。

也可以在创建数组时,指明数组的长度,语法如下所示:

newArray(size);

其中,参数size是期望的数组元素个数,所返回数组的length字段将被设为size的值。

此时,将返回具有指定个数、元素为undefined的数组。

还可以在创建数组时,直接初始化数组元素,语法如下所示:

newArray(element0,element1,...,elementn);

其中,参数element...,elementn是参数列表,用于在创建数组时直接初始化数组元素,数组的length字段也会被设置为参数的个数。

也可以直接使用简写的方式创建并初始化数组,代码如下所示:

vararr=[12,true,”aaa”];

需要注意的是,JavaScript本身是一种弱类型的语言,因此,在数组中,也可以存入不同数据类型的数值。

join([连接符1]),将数组成员拼接成字符串

4.3.2.创建二维数组

通过指定数组中的元素为数组的方式可以创建二维甚至多维数组。

查看如下代码:

varcnweek=newArray(7);

for(vari=0;i<=6;i++){

cnweek[i]=newArray

(2);

}

cnweek[0][0]="星期日";

cnweek[0][1]="Sunday";

cnweek[1][0]="星期一";

cnweek[1][1]="Monday";

...

cnweek[6][0]="星期六";

cnweek[6][1]="Saturday";

上述代码将创建一个二维数组,如图-2所示:

图-2

4.3.3.Array对象的常用方法

Array对象定义了大量方法,用于操作数组及数组中的元素。

1、join()方法

join()方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的。

语法如下:

arrayObject.join(separator)

其中,参数separator可选,表示要使用的分隔符。

如果省略该参数,则使用逗号作为分隔符。

该方法返回一个字符串。

该字符串是通过把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成的。

2、toString()方法

toString()方法可把数组转换为字符串,并返回结果。

此方法与没有参数的join()方法返回相同的字符串。

需要注意的是,当数组用于字符串环境时,JavaScript会调用这一方法将数组自动转换成字符串。

但是在某些情况下,需要显式地调用该方法。

3、concat()方法

concat()方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法如下:

arrayObject.concat(arrayX,arrayX,......,arrayX)

其中,参数arrayX必需,该参数可以是具体的值,也可以是数组对象。

可以是任意多个。

该方法返回一个新的数组,新数组是通过把所有arrayX参数添加到arrayObject中生成的。

如果要进行concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组。

4、slice()方法

slice()方法可从已有的数组中返回选定的元素。

语法为:

arrayObject.slice(start,end)

其中,参数start必须,规定从何处开始选取。

如果是负数,那么它规定从数组尾部开始算起的位置。

也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。

参数end可选,规定从何处结束选取。

该参数是数组片断结束处的数组下标。

如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。

如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

slice()方法返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。

请注意,该方法并不会修改数组,而是返回一个子数组。

如果想删除数组中的一段元素,应该使用方法Array.splice()。

4.3.4.数组倒转与排序

1、reverse()方法

reverse()方法用于颠倒数组中元素的顺序。

语法为:

arrayObject.reverse()

注意:

该方法会改变原来的数组,而不会创建新的数组。

2、sort()方法

sort()方法用于对数组的元素进行排序。

语法为:

arrayObject.sort(sortby)

其中,参数sortby可选,用于规定排序的顺序,必须是函数。

该方法返回对数组的引用,即,数组在原数组上进行排序,不生成副本。

需要注意的是,如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

比较函数应该具有两个参数a和b,其返回值如下:

若a小于b,在排序后的数组中a应该出现在b之前,则返回一个小于0的值。

若a等于b,则返回0。

若a大于b,则返回一个大于0的值。

4.4.Math对象

4.4.1.Math对象

Math对象用于执行数学任务,使用Math对象的属性和方法的语法如下所示:

varpi_value=Math.PI;

varsqrt_value=Math.sqrt(15);

由上述代码可以看出,Math对象并不像String那样是对象的类,因此没有构造函数Math(),像Math.sin()这样的函数只是函数,不是某个对象的方法。

因此,在使用Math对象时,无需创建它,通过把Math作为对象使用就可以调用其所有属性和方法。

4.4.2.Math对象的常用属性和方法

Math对象的常用属性都是数学常数,如Math.E(自然数)、Math.PI(圆周率)、Math.LN2(ln2)、Math.LN10(ln10)等。

Math对象的方法也都是和数学相关的方法,比如:

Math.ceil(number),进一取整,Math.floor(number),舍一取整

Math.pow()幂运算,Math.sqrt()开放:

开平方,Math.round()四舍五入,只保留到整数位,Math.random()

∙三角函数:

Math.sin(x)、Math.cos(x)、Math.tan(x)等;

∙反三角函数:

Math.asin(x)、Math.acos(x)等;

∙计算函数:

Math.sqrt(x)、Math.log(x)、Math.exp(x)等;

∙数值比较函数:

Math.abs(x)、Math.max(x,y,...)、Math.random()、Math.round(x)等。

4.5.Number对象

4.5.1.Number对象

Number对象是原始数值的包装对象。

创建Number对象的语法如下:

varmyNum=newNumber(value);

varmyNum=Number(value);

其中,参数value是要创建的Number对象的数值,或是要转换成数字的值。

当Number()和运算符new一起作为构造函数使用时,它返回一个新创建的Number对象。

如果不用new运算符,把Number()作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回NaN)。

4.5.2.Number对象的常用方法

1、toString()方法

用于把一个Number对象转换为一个字符串,并返回结果。

语法为:

NumberObject.toString(radix)

其中,参数radix可选,规定表示数字的基数,使2~36之间的整数。

若省略该参数,则使用基数10。

但是要注意,如果该参数是10以外的其他值,则ECMAScript标准允许实现返回任意值。

例如,当radix为2时,NumberObject会被转换为二进制值表示的字符串。

当调用该方法的对象不是Number时抛出TypeError异常。

2、toFixed()方法

toFixed()方法可把Number四舍五入为指定小数位数的数字。

语法为:

NumberObject.toFixed(num)

其中,参数num必须,表示规定小数的位数,是0~20之间的值,包括0和20,有些实现可以支持更大的数值范围。

如果省略了该参数,将用0代替。

该方法返回NumberObject的字符串表示,不采用指数计数法,小数点后有固定的num位数字。

如果必要,该数字会被舍入,也可以用0补足,以便它达到指定的长度。

如果num大于le+21,则该方法只调用NumberObject.toString(),返回采用指数计数法表示的字符串。

当num太小或太大时抛出异常RangeError。

0~20之间的值不会引发该异常。

有些实现支持更大范围或更小范围内的值。

当调用该方法的对象不是Number时抛出TypeError异常。

1.常用内置对象

1.1.正则表达式对象

1.1.1.RegExp对象概述

RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

创建正则表达式对象有两种方式:

直接量语法:

1./pattern/attributes

创建RegExp对象的语法:

1.newRegExp(pattern,attributes);

其中,参数pattern是一个字符串,指定了正则表达式的模式或其他正则表达式;参数attributes是一个可选的字符串,包含属性"g"、"i"和"m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

如果pattern不是合法的正则表达式,或attributes含有"g"、"i"和"m"之外的字符,则会抛出异常。

1.1.2.RegExp对象的常用方法

正则表达式对象在JavaScript中,除了可以配合String对象的split/replace/search/match方法使用之外,还可以使用正则表达式对象自身的方法,实现对文本字符串的匹配测试。

正则表达式对象最常用的方法就是test()。

该方法用于检测一个字符串是否匹配某个模式,语法如下:

1.RegExpObject.test(string)

其中,参数string必须,表示要检测的字符串。

该方法返回bool类型的数据,表示所检测的字符串是否匹配正则表达式。

如果字符串string中含有与RegExpObject匹配的文本,则返回true,否则返回false。

比如,查看如下代码:

1.varstr="VisitW3School";

2.varpatt1=newRegExp("W3School");

3.varresult=patt1.test(str);

4.alert(result);

result的值为true。

1.2.Date对象

1.2.1.Date对象

Date对象用于处理日期和时间。

创建Date对象的语法如下:

1.varmyDate=newDate()

使用上述代码创建Date对象时,会自动把当前日期和时间保存为其初始值。

也可以在创建Date对象时,指定其日期和时间,代码如下所示:

1.varnowd2=newDate("2014/3/2011:

12");

1.2.2.Date对象的常用方法

Date对象的常用方法分为三种:

getMonth();获取月0-11月(美国人习惯)所以要加1

getHours()

getMinutes();

1、获取日期数据

getDate()获取日期、getDay()获取的是星期的第几天0为星期天、getFullYear()获取年等。

setMilliseconds()

2、修改日期数据

setDate()、setDay()、setFullYear()等。

3、获取日期格式的字符串

toString()、toLocaleTimeString()、toLocaleDateString()等。

1.3.Function对象

1.3.1.函数与Function对象

函数是定义一次却可以调用或执行任意多次的一段JavaScript代码。

在JavaScript中,函数实际上是功能完整的对象,Function类可以表示开发者定义的任何函数。

1.3.2.函数的定义

函数就是包裹在花括号中的代码块,前面使用了关键词function,语法如下:

1.functionfunctionname()

2.{

3.这里是要执行的代码

4.}

当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由JavaScript在任何位置进行调用。

需要注意的是,JavaScript对大小写敏感。

关键词function必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

也可以声明带有参数的函数,语法如下:

1.functionmyFunction(var1,var2)

2.{

3.这里是要执行的代码

4.}

如果希望定义有返回值的函数,则使用return语句。

在使用return语句时,函数会停止执行,并返回指定的值。

1.3.3.函数的调用

在调用函数时,可以向其传递值,这些值被称为参数。

可以发送任意多的参数,由逗号(,)分隔,语法如下:

1.myFunction(argument1,argument2);

调用方法时,变量和参数必须以一致的顺序出现。

第一个变量就是第一个被传递的参数的给定的值,以此类推。

比如,查看如下代码:

1.functionmyFunction(x)

2.{

3.vary=x*x;

4.returny;

5.}

上述代码声明的函数,有参数,且有返回值。

可以使用如下代码调用该函数:

1.varmyVar=myFunction(5);

myVar变量的值是25,也就是函数"myFunction()"所返回的值。

1.3.4.arguments对象

在函数代码中,使用特殊对象arguments可以访问函数的参数。

即,开发者在定义函数时,无需明确的为方法声明参数,也可以在方法体中使用arguments来访问参数。

这是因为,arguments是一种特殊对象,在函数代码中,表示函数的参数数组。

正因为arguments表示参数组成的数组,因此,首先可以使用arguments.length检测函数的参数个数,其次,可以通过下标(arguments[index])来访问某个参数。

这样,可以用arguments对象判断传递给函数的参数个数并获取参数,从而模拟函数重载。

例如,在函数sayHi()中,第一个参数是message。

用arguments[0]也可以访问这个值,即第一个参数的值(第一个参数位于位置0,第二个参数位于位置1,依此类推)。

因此,无需明确命名参数,就可以重写函数:

1.functionsayHi(){

2.if(arguments[0]=="bye"){

3.return;

4.}

5.

6.alert(arguments[0]);

7.}

1.3.5.使用Function对象创建函数

用Function类直接创建函数的语法如下:

1.varfunction_name=newFunction(arg1,arg2,...,argN,function_body);

在上面的形式中,每个arg都是一个参数,最后一个参数是函数主体(要执行的代码)。

这些参数必须是字符串。

假如有函数如下所示:

1.functionsayHi(sName,sMessage){

2.alert("Hello"+sName+sMessage);

3.}

还可以这样定义它:

1.varsayHi=

2.newFunction("sName","sMessage","alert(\"Hello\"+sName+sMessage);");

虽然由于字符串的关系,这种形式写起来有些困难,但有助于理解函数只不过是一种引用类型,它们的行为与使用function关键字明确创建的函数行为是相同的。

请看下面这个例子:

1.functiondoAdd(iNum){

2.alert(iNum+20);

3.}

4.

5.functiondoAdd(iNum){

6.alert(iNum+10);

7.}

8.

9.doAdd(10);    //输出"20"

因为在JavaScript中,同名的方法会被覆盖,因此,调用doAdd(10)输出了"20",而不是"30"。

如果以下面的形式重写该代码块,这个概念就清楚了:

1.vardoAdd=newFunction("iNum","alert(iNum+20)");

2.vardoAdd=newFunction("iNum","alert(iNum+10)");

3.doAdd(10);

请观察这段代码,很显然,doAdd的值被改成了指向不同对象的指针。

函数名只是指向函数对象的引用值,行为就像其他对象一样。

甚至可以使两个变量指向同一个函数:

1.var

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1