javascript入门四

String、Math、Array 等数据对象

JavaScript 脚本提供丰富的内置对象,包括同基本数据类型相关的对象(如String、Boolean、 Number)、允许创建用户自定义和组合类型的对象(如Object、Array)和其他能简化JavaScript 操作的对象(如Math、Date、RegExp、Function)。

String 对象

var MyString=new String( );
var MyString=new String(string);

该方法使用关键字new 返回一个使用可选参数“string”字符串初始化的String 对象的实例MyString

使用String 对象方法操作字符串

MyString.toUpperCase();

String 对象的toLowerCase( )方法与toUpperCase( )方法的语法相同、作用类似,不同点在于前者将目标串中所有字符转换为小写状态并返回结果给新的字符串。在

获取目标字符串长度

字符串的长度length 作为String 对象的唯一属性,且为只读属性,它返回目标字符串(包含字符串里面的空格)所包含的字符数。

strLength=MyString.length;

将MyString 的length 属性保存在变量strLength 中,并且其值随着字符串内容的变化自动更新。

连接两个字符串

String 对象的concat( )方法能将作为参数传入的字符串加入到调用该方法的字符串的末尾并将结果返回给新的字符串,语法如下:

newString=targetString.concat(anotherString);

返回指定位置的字符串

String 对象的indexOf( )方法返回通过参数传入的字符串出现的开始位置

String 对象的indexOf( )方法有个类似的方法,即lastIndexOf( )方法,该方法与indexOf( )方法不同点在于其搜索的顺序是由右向左(由后至前),与indexOf( )方法正好相反。

slice( )  slice(num1,num2); slice(num)

以参数num1和num2作为开始和结束索引位置,返回目标字符串中num1和num2之间的子串。当num2为负时,从字符串结束位置向前num2个字符即为结束索引位置;当参数num2大于字符串的长度时,字符串结束索引位置为字符串末尾。若只有参数num,返回从num索引位置至字符串结束位置的子串。

substr( )  substr(num1,num2); substr(num)

返回字符串在指定初始位置num1、长度为num2个字符的子串。参数num1为负时,返回字符串起始位置开始、长度为num2个字符的子串;当参数num2大于字符串的长度时,字符串结束位置为字符串的末尾。使用单一参数num时,返回从该参数指定的位置到字符串结尾的字符串。

substring( )  substring(num1,num2); substring(num);

返回字符串在指定的索引位置num1和num2之间的字符。如果num2为负,返回从字符串起始位置开始的num1个字符;如果参数num1为负,将被视为0;如果参数num2大于字符串长度,将被视为string.length。使用单一参数num时返回从该参数指定的位置到字符串结尾的子串。

分隔字符串

String 对象提供split( )方法来进行字符串的分割操作,split( )方法根据通过参数传入的规则表达式或分隔符来分隔调用此方法的字符串。split( )方法的语法如下:

String.split(separator,num);

String.split(separator);

String.split(regexpression,num);

如果传入的是一个规则表达式regexpression,则该表达式由定义如何匹配的pattern 和flags 组成;如果传入的是分隔符separator,则分隔符是一个字符串或字符,使用它将调用此方法的字符串分隔开,num 表示返回的子串数目,无此参数则默认为返回所有子串。

将字符串标记为HTML 语句

客户端JavaScript 脚本主要用于处理HTML 文档中各元素对象,同时提供大量的方法将字符串转化为HTML 语句,这些方法返回使用了HTML 标记对的字符串。如下面的代码:

var MyString="Welcome to JavaScript world!".big();

document.write(MyString);

脚本运行后,相当于下面的HTML 语句:

<big> Welcome to JavaScript world!</big>

在HTML 文档中,标记之间可以相互嵌套,JavaScript 脚本也可通过链式方法调用实现该效果,如HTML 语句:

<a url="parent.html"><big> <strike>Welcome to JavaScript world! </strike></big></a>

使用JavaScript 脚本实现的代码如下:

var MyStr="Welcome to JavaScript world!".strike().big().link('parent.html');

常见属性和方法

Math 对象

Math 对象所有的属性和方法都是静态的,并不能生成对象的实例,但能直接访问它的属性和方法。

JavaScript 脚本中浮点运算精确度不高,常导致计算结果产生微小误差从而导致最终结果的致命错误。

基本数学运算

Math 对象提供丰富的方法用于数学运算,特别是三角函数方面的方法。由于三角函数的参数使用弧度制,要在参数上乘以π /180。

任意范围随机数发生器

在JavaScript 脚本中,可使用Math 对象的random()方法生成0 到1 之间的随机数

访问其基本属性

Math 对象拥有很多基本属性,如圆周率Math.PI、Math.SQRT2、Math.log10E 等,表示数学运算中经常使用的常量。

使用with 声明简化表达式

在Math 对象进行数学计算时,常涉及到它的很多种属性或方法,如果每次都使用Math.abs()、Math.PI 方式调用的话,代码复杂度高。可以使用with 申明来简化调用的代码。

在 JavaScript 脚本代码中声明with 后,在with 作用范围内的Math 对象的属性和方法都可以直接使用,而不需要使用Math 对象引用的方式调用。

常见属性汇总

常见方法汇总

Array 对象

数组是包含基本和组合数据类型的有序序列,在 JavaScript 脚本语言中实际指Array 对象。数组可用构造函数Array( )产生,主要有三种构造方法:

Var MyArray=new Array();
var MyArray =new Array(4);
var MyArray =new Array(arg1,arg2,...,argN);

第一句声明一个空数组并将其存放在以MyArray 命名的空间里,可用数组对象的方法动态添加数组元素;第二句声明长度为4 的空数组,JavaScript 脚本中支持最大的数组长度为4294967295;第三句声明一个长度为N 的数组,并用参数arg1、arg2、...、argN 直接初始化数组元素,该方法在实际应用中最为广泛。

访问其特定位置元素

数组元素下标从 0 开始顺序递增,可通过数组元素的下标实现对它的访问:

var data=MyArray[i];

但访问数组中未被定义的元素时将返回未定义的值,如下列代码:

var data=MyArray[5];

运行后,data 返回undefined。同样,使用稀疏数组时,访问未被定义的元素也将返回未定义的值undefined。

数组中元素的顺序问题

Array 对象提供相关相关方法实现数组中元素的顺序操作,如颠倒元素顺序、按Web 应用程序开发者制定的规则进行排列等,主要有Array 对象的reverse()和sort()方法。

reverse()方法将按照数组的索引号的顺序将数组中元素完全颠倒,语法如下:

arrayName.reverse();

sort()方法较之reverse()方法复杂,它基于某种顺序重新排列数组的元素,语法如下:

arrayName.sort();
arrayName.sort(function);

第一种调用方式不指定排列顺序,JavaScript 脚本将数组元素转化为字符串,然后按照字母顺序进行排序。
第二种调用方式由参数 function 指定排序算法,该算法需遵循如下的规则:
算法必须接受两个可以比较的参数 a 和b,即function(a,b);
算法必须返回一个值以表示两个参数之间的关系;
若参数 a 在参数b 之前出现,函数返回小于零的值;
若参数 a 在参数b 之后出现,函数返回大于零的值;
若参数 a 等于b,则返回零。

模拟堆栈和队列操作的方法

Array 对象提供了诸如pop()、push()、unshift()、shift()等方法来动态添加和删除数组元素。先来了解两个抽象的数据类型:

堆栈(LIFO):用于以“后进先出”的顺序存储数据的结构。在读取堆栈的时候,最后存入的数据最先被读取出来;
队列(FIFO):用于以“先进先出”的顺序储存数据的结构。在读取队列的时候,最先存入的数据最先被读取出来。

其中 pop()方法模拟堆栈的“压栈”动作,将数组中最后一个元素删除,并将该元素作为操作的结果返回,同时更新数组的length 属性;push()方法模拟堆栈的“出栈”动作,将以参数传入的元素按参数顺序添加到数组的尾部,并将插入的元素作为操作的结果返回,同时更新数组的length 属性。

unshift()、shift()方法与pop()、push()方法相对,都是删除和添加数组元素,仅仅是删除和添加目标的位置不同,前者与后者相反方向,即从数组的第一个元素开始操作,后面的元素将分别向前和向后移动,数组的length 属性自动更新。

使用splice()方法添加和删除数组元素

Array 对象的splice()方法提供一种在数组任意位置添加、删除数组元素的方法。语法如下:

MyArray.splice(start,delete,arg3,…,argN);

参数说明如下:

当参数 delete 为0 时,不执行任何删除操作;
当参数 delete 非0 时,在调用此方法的数组中删除下标从start 到shart+delete 的数组元素,其后的数组元素的下标均减小delete;
如果在参数 delete 之后还有参数,在执行删除操作之后,这些参数将作为新元素添加到数组中由start 指定的开始位置,原数组该位置之后的元素往后顺移。

修改length 属性更改数组

Array 对象的length 属性保存目标数组的长度:

var strLength=MyArray.length;

Array 对象的length 属性检索的是数组末尾的下一个可及(未被填充)的位置的索引值,即使前面有些索引没被使用,length 属性也返回最后一个元素后面第一个可及位置的索引值。

调用Array 对象的方法生成字符串

Array 对象的join()方法由两种调用方式:

MyArray.join();
MyArray.join(string);

join()方法将数组中所有元素转化为字符串,并将这些串由逗号隔开合并成一个字符串作为方法的结果返回。如果调用时给定参数string,就将string 作为在结果字符串中分开由各个数组元素形成的字符串的分隔符。

toString()方法返回一个包含数组中所有元素,且元素之间以逗号隔开的字符串。该方法在将数组作为字符串使用时强制使用,且不需显性申明此方法的调用。

连接两个数组

Array对象提供concat()方法将以参数传入的数组连接到目标数组的后面,并将结果返回新数组,从而实现数组的连接。concat()方法的语法如下:

var myNewArray=MyArray.concat(arg1,arg2,…,argN);

该方法将按照参数的顺序将它们添加到目标数组MyArray 的后面,并将最终的结果返回新数组myNewArray。

常见属性和方法汇总

Date 对象

在 Web 应用中,经常碰到需要处理时间和日期的情况。JavaScript 脚本内置了核心对象Date,该对象可以表示从毫秒到年的所有时间和日期,并提供了一系列操作时间和日期的方法。在深入了解Array 对象前,首先了解两个有关时间标准的概念:

GMT:格林尼治标准时间的英文缩写,指位于伦敦郊区的皇家格林尼治天文台的标准时间,该地点的经线被定义为本初子午线。理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。
UTC:世界协调时间的英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度,相当于本初子午线上的平均太阳时。由于地球自转速度不规则,目前采用由原子钟授时的UTC 作为时间标准。

在大多数情况下,可以假定GMT 时间和UTC 时间一致,电脑的时钟严格按照GMT 时间运行。

生成日期对象的实例

Date 对象的构造函数通过可选的参数,可生成表示过去、现在和将来的Date 对象。其构造方式有四种,分别如下:

var MyDate=new Date();
var MyDate=new Date(milliseconds);
var MyDate=new Date(string);
var MyDate=new Date(year,month,day,hours,minutes,seconds,milliseconds);

第一句生成一个空的Date 对象实例MyDate,可在后续操作中通过Date 对象提供的诸多方法来设定其时间,如果不设定则代表客户端当前日期;在第二句的构造函数中传入唯一参数milliseconds,表示构造与GMT标准零点相距milliseconds毫秒的Date 对象实例MyDate;第三句构造一个用参数string 指定的Date 对象实例MyDate,其中string 为表示期望日期的字符串,符合特定的格式;第四句通过具体的日期属性,如year、month 等构造指定的Date对象实例MyDate。

如何提取日期各字段

提取日期各字段的关键代码如下:
var nowTime = new Date();
var iyear = nowTime.getYear();
var imonth = nowTime.getMonth();
var iweek = nowTime.getDay();
var idate = nowTime.getDate();
var ihours= nowTime.getHours();
var iminutes = nowTime.getMinutes();
var iseconds = nowTime.getSeconds();

上述代码依次为构造用于保存当前日期的空对象和获取年、月、星期、日、小时、分、秒等日期字段,并分别用变量保存个各字段信息,用于后续处理。

将日期转化为字符串

Date 对象提供如toGMTString()、toLocalString()等方法将日期转换为字符串,而不需要开发人员编写专门的函数实现该功能

toString()和toLocaleString()方法返回表示客户端日期和时间的字符串,但格式大不相同。实际上,toLocaleString()方法返回字符串的格式由客户设置的日期和时间格式决定,而toString()方法返回的字符串遵循以下格式:

Fri Aug 3 22:49:00 UTC+0800 2007

常见属性和方法汇总

Number 对象

创建Number 对象的实例

创建Number 对象的实例语法如下:

var MyData=new Number();
var MyData=new Number(value);

第一句构造一个空的Number 对象实例MyData;第二句构造一个Number 对象的实例MyData,同时用通过参数传入的参数value 初始化。

通过第一种方法构造空的Number 对象实例后,JavaScript 语言给其赋默认值0;第二种方法中构造Number 对象实例,并用参数 初始化。

将Number 对象转化为字符串

构造Number 对象的实例后,可调用Number 对象的toString()方法将其转化为字符串。

通过prototype 属性添加属性和方法

Number.prototype.newFunc=MySin;

通过访问Number 对象的prototype 属性添加newFunc()方法,并将该方法的具体实现指向自定义的函数MySin();然后通过调用该方法实现相应的功能。通过Number 对象的prototype 属性给Number 对象添加属性的过程更简单,只需设定新属性的名称并直接赋值即可。

常见属性和方法汇总

Boolean 对象

创建Boolean 对象的实例

Boolean 对象的实例可通过使用Boolean 对象的构造函数、new 操作符或Boolean()函数来创建:

var MyBool=new Boolean();
var MyBool=new Boolean(value);
var MyBool=Boolean(value);

第一句通过Boolean 对象的构造函数创建对象的实例MyBool,并用Boolean 对象的默认值false 将其初始化;第二句通过Boolean 对象的构造函数创建对象的实例MyBool,并用以参数传入的value 值将其初始化;第三句使用Boolean()函数创建Boolean 对象的实例,并用以参数传入的value 值将其初始化。

将Boolean 对象转化为字符串

var MyStr=MyBool.toString();使用 toString()方法,返回的MyStr="false"为字符串。

常见属性和方法汇总

Function 对象

两个概念:Function 与function

简而言之,Function 是对象而function 是函数。实际上,在JavaScript 中声明一个函数本质上为创建Function 对象的一个实例,而函数名则为实例名

function sayHello(username)
{
alert("Hello "+name);
}

输入参数“NUDT!”,返回警告框

如果通过创建Function 对象的实例的方式来实现该功能,代码如下:

var sayHello = new Function("name","alert('Hello '+name)");

在该方式中,第一个参数是函数sayHello()的参数,第二个参数是函数sayHello()的函数体。定义之后,可通过调用sayHello("NUDT!")的方式获得上述的结果。

通过两种构造方式的对比,可以看出所谓的函数只不过是 Function 对象的一个实例,而函数名为实例的名称。

使用Function 对象构造函数

在JavaScript 中,构造函数常用如下的两种方法:

函数的原始构造方法:
function functionName([argname1 [, ...[, argnameN]]])
{
body
}

创建 Function 对象实例的方法:
functionName = new Function( [arg1, [... argN,]],body );

其中functionName 是创建的目标函数名称,为必选项;arg1,...,argN 是函数接收的参数列表,为可选项。函数接收的参数列表;body 是函数体,包含调用此函数时执行的代码,为可选项。

举个执行两个数加法的程序,使用第一种构造方法:

function add(x, y)
{
return(x + y);
}

如果采用创建Function 对象实例的方式实现同样的功能,如下代码:

var add = new Function("x", "y", "return(x+y)");

在这两种情况下,都通过add(4, 5)的方式调用目标函数。第二种构造方式适用于参数较少、函数代码比较简单的情形,而第一种方式代码层次感较强,且对代码的复杂程度和参数多少并无特别的规定。

常见属性和方法汇总

Object 对象

所有的 JavaScript 对象都继承自Object 对象,后者为前者提供基本的属性(如prototype属性等)和方法(如toString()方法等)

创建Object 对象的实例

Object 对象的实例构造方法如下:

var MyObject=new Object(string);

上述语句构造object 对象的实例MyObject,同时用以参数传入的string 初始化对象实例,该实例能继承object 对象提供的几个方法进行相关处理。参数string 为要转为对象的数字、布尔值或字符串,此参数可选,若无此参数,则构建一个未定义属性的新对象。

JavaScript 脚本支持另外一种构造Object 对象实例的方法:

var MyObject={name1:value1,name2:value2,...,nameN:valueN};

该方法构造一个新对象,并使用指定的name1,name2,…,nameN 指定其属性列表,使用value1,value2,…,valueN 初始化该属性列表。

常见属性和方法列表


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值