javascript核心讲解 (javascript的常用内部对象)

javascript常用对象五个,javascript的主要功能和常用对象

一 Arrays

array数组对象

数组对象使用单独的变量名来存储一系列的值.

数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值.数组中的每个元素都有自己的id,以便它可以很容易地被访问.

创建数组,并赋值:

var mycars=new Array("Saab","Volvo","BMW");

以上通过new Array()生成mycars数组对象,并赋予初始值.

访问数组:

mycars[0],mycars[1],,,,,

索引号码从0开始,第一个元素的索引号码是0.

访问数组以外的索引,返回值underfined.

比如:mycars[3]

二 其他方式创建数组

可以先声明一个数组,告诉它将存储的元素数量.然后再添加元素.

var courses=new Array(3);

courses[0]="HTML";

courses[1]="CSS";

courses[2]="JS";

数组是一种特殊类型的对象.

数组使用索引来访问其元素.而一个对象使用属性来访问其成员.

javascript数组是动态的,所以可以声明一个数组.不给Array()构造函数传递任何参数.然后可以动态添加元素.

var courses=new Array();

courses[0]="HTML";

courses[1]="CSS";

courses[2]="JS";

courses[3]="C++";

你可以添加任意数量的元素.

字面量语法创建数组

为了更大的简单性,可读性和执行速度,你可以使用数组字面量语法来声明数组.

var courses=["HTML","CSS","JS","C++"];

这种声明方式和使用new Array()方式创建的数组相同.

你可以通过数字索引访问和修改数组的值.推荐使用字面量语法创建数组.

三 数组属性和方法

length属性

数组的length属性返回它的元素的数量.

var courses=["HTML","CSS","JS"];

document.write(courses.lenght);

//->3

数组合并

javascript的concat()方法允许你连接数组并创建一个全新的数组.

var c1=["HTML","CSS"];

var c2=["JS","Python"];

var courses=c1.concat(c2);

courses数组包含4个元素:HTML,CSS,JS,Python

concat()操作不会影响c1和c2数组.它会将所产生的连接作为新数组返回.

四 关联数组

许多编程语言支持具有命名索引的数组(文本而不是数字),称为关联数组.但是javascript不支持

不过,仍然可以使用命名数组语法,这将产生一个对象.

var person=[];

person["name"]="Loen";

person["age"]="28";

document.write(person["age"]);

//->28

现在person被视为一个对象,而不是一个数组.

命名索引"name"和"age"成为person对象的属性.

当person数组被视为对象时,标准数组方法和属性将产生不正确的结果.例如:person.length将返回0.

javascript不支持使用名称索引数组.

在javascript中,数组总是使用数字编号的索引.

当你希望索引为字符串(文本)时,最好使用对象.

当你希望索引为数字时,使用数组

如果使用名称索引,javascript将会将数组重新定义为标准对象.

五 Math对象

Math(算数)对象的作用是:执行普遍的算数任务.

Math对象提供多种算数值类型和函数.无需在使用这个对象之前对它进行定义.

Math对象属性:

E 返回算数常量e,即自然对数的底数(约等于2.718)

LN2 返回2的自然对数(约等于0.693)

LN10 返回10的自然对数(约等于2.302)

LOG2E 返回以2为底的e的对数(约等于1.414)

LOG10E 返回以10为底的e的对数(约等于0.434)

PI 返回圆周率(约等于3.1415926)

SQRT1_2 返回2的平方根的倒数(约等于0.707)

SQRT2 返回2的平方根(约等于1.414)

Math没有构造函数.没有必要先创建一个Math对象.

Math对象方法

Math对象包含许多对于计算的方法:

abs(x) 返回x的绝对值

acos(x) 返回x的反余弦值

asin(x) 返回x的反正弦值

atan(x) 返回x的反正切值(介于-PI/2~PI/2弧度之间)

atan2(y,x) 返回从x轴到点(x,y)的角度(介于-PI/2~PI/2之间)

ceil(x) 进行上舍入

floor(x) 进行下舍入

cos(x) 返回数的余弦值

exp(x) 返回E的x次幂的指数

log(x) 返回数的自然对数(底为e)

max(x,y,z....) 返回最大值

min(x,y,z.....) 返回最小值

pow(x,y) 返回x的y次幂

random() 返回0~1之间的随机数.

round(x) 把数四舍五入为最接近的整数

sin(x) 返回数的正弦值

sqrt(x) 返回数的平方根

tan(x) 返回角的正切

创建一个程序,让用户输入一个数字并通过提醒显示平方根

var n=prompt("请输入一个数字:","");

var answer=Math.sqrt(n);

alert("数字"+n+"的平方根是:"+answer);

效果如下:

javascript常用对象五个,javascript的主要功能和常用对象

javascript常用对象五个,javascript的主要功能和常用对象

六 时间对象

setInterval

setInterval()方法调用函数或以指定的间隔(单位为毫秒)来计算表达式

它将持续调用该函数,直到调用clearInterval()或关闭窗口

function myAlert(){

alert("19954601618"); }

setInterval(myAlert,2000); // 每2秒执行一次myAlert

将函数的名称传给setInterval方法时,不带圆括号

效果如下:

javascript常用对象五个,javascript的主要功能和常用对象

Date对象

日期对象用于处理日期和时间.

日期由年 月 日 时 分 秒和毫秒组成.

使用new Date(),将创建一个存储当前日期和时间的日期对象.

var d=new Date();

// d存储了当前的日期和时间

初始化日期的其他方法允许从指定的日期和时间创建新的日期对象

new Date(milliseconds) // 毫秒

new Date(dateString) //日期字符串

new Date(year,month,day,hours,minutes,seconds,milliseconds) // 年 月 日 时 分 秒 毫秒

javascript日期以1970年01月01日00:00:00世界时(UTC)计算.一天包含86400000毫秒

var d1=new Date(86400000);

alert(d1);

效果如下:

javascript常用对象五个,javascript的主要功能和常用对象

var d3=new Date(88,5,11,11,42,0,0)

alert(d3);

效果如下:

javascript常用对象五个,javascript的主要功能和常用对象

javascript计数从0到11的月份.1月就是0,12月就是11.

所以上边的88就是1988年,5就是六月 June,11日,11点42分0秒0毫秒

日期对象时静态的,而不是动态的.计算机时间正在往前走,但是日期对象一旦创建,日期就不会改变.

Date 方法

getDate() 从Date对象返回一个月中的某一天(1-31)

getDay() 从Date对象返回一周中的某一天(0-6)

getFullYear() 从Date对象以四位数字返回年份.

getHours() 返回Date对象的小时(0-23)

下面的程序,每秒打印一次当前浏览器的时间.

function printTime(){

var d=new Date();

var hours=d.getHours();

var mins=d.getMinutes();

var secs=d.getSeconds();

document.body.innerHTML=hours+":"+mins+":"+secs; }

setInterval(printTime,1000);

效果如下:

javascript常用对象五个,javascript的主要功能和常用对象

我们定义了一个printTime函数,通过new Date()生成当前时间的对象,然后通过getHours(),getMinutes(),getSeconds()获取当前的时,分,秒.并打印出来... 通过setInterval()每隔1秒执行一次printTime函数.

innerHTML属性设置或返回元素的HTML内容.在我们的例子中,我们正在改变文档体的HTML内容,这将每秒覆盖原来的内容,而不是重复打印到屏幕.

每天进步一点点!还剩下最后一节javascript课程了,加油!