注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断尘居

温柔的男人像海洋。

 
 
 
 
 

日志

 
 

JavaScript的函数和数组  

2012-05-09 23:05:38|  分类: JS / jQuery |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

函数是可以重复使用的代码块,可以由一个事件执行,或被调用执行。一个函数中的代码只有在事件触发或函数被调用的时候才被执行。你可以在页面中的任何位置调用脚本(如果函数嵌入一个外部的 .js 文件,甚至可以从其他的页面中调用)。函数一般定义在页面开始位置的<head> 部分中。

eg:

<html> <head> <script type="text/javascript"> function displaymessage() { alert("Hello World!") } </script> </head> <body> <form> <input type="button" value="Click me!" onclick="displaymessage()"> </form> </body> </html> 

假如上面的例子中的 alert("Hello world!!") 没有被写入函数,那么当页面被载入时它就会执行。现在,当用户击中按钮时,脚本才会执行。我们给按钮添加了onClick 事件,这样按钮被点击时函数才会执行。

创建函数的语法:

function 函数名(var1,var2,...,varX)  若无var1,var2,...,varX也可以,表示无参数函数。   {   代码...   } 或 var a = function () {代码...}  


数组

数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象).

定义数组 定义数组要使用关键字new。

eg:var myArray=new Array()

向数组内赋值有2种方法:

  • 先定义再赋值。
var mycars=new Array() mycars[0]=“buick” mycars[1]=”Volvo” mycars[2]=”BMW”  

上面的定义中没有定义数组的大小,你可以向数组中添加任意多个值。你也可以在定义数组对象时写入一个整型参数来控制数组的大小.

eg:

var mycars=new Array(3) mycars[0]="buick” mycars[1]=”Volvo” mycars[2]=”BMW”  


  • 定义的同时填值:

eg: var mycars=new Array(”buick”,”Volvo”,”BMW”) 或var mycars=[”buick”,”Volvo”,”BMW”]


访问数组

你可以通过使用数组的名称后面加索引号来指向数组中某一元素。索引号从零开始。

eg: document.write(mycars[0]) 将输出:buick

修改数组内的值

要修改数组中现有的值只需要将新值写入数组指定位置即可。

eg:将0号索引的值改为:Opel。 写法为:mycars[0]=”Opel” document.write(mycars[0])

Array literals

数组其实是特殊的对象,对象有特有属性和方法,通过 对象名.属性 、对象.方法() 来取值和调用,而数组是通过下标来取值,Array Literals跟数组有很多相似,都是某数据类型的集合,但是Array Literals从根本来说,是个对象,但声明和调用,跟数组是有区别。

var aa=new Object(); aa.x="cat"; aa.y="sunny"; alert(aa.x);//弹出cat 

创建一个简单的对象,一般调用是通过aa.x,而如果当成Array literals的话,用alert(aa[“x”])一样会弹出cat

var a = {x:"cat",    y:"sunny"}; alert(a["y"]);  //弹出sunny 

这是另一种创建对象的方法,结果是一样的.

数组的循环

var a=[1,2,3,4,5,6]; for(i=0;i<a.length;i++) { alert(a[i]); } 

这是最常用的遍历数组,代码依次弹出1至6.

还有一宗方法为:

var a=[1,2,3,4,5,6]; for(var e in a) {    alert(e)} 

还是依次弹出1至6,for…in是历遍对象(数组是特殊的对象)对象,用在数组上,因为数组没有属性名,所以直接输出值,

数组的操作方法

先概览下下面的这些操作数组常用的方法:toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(),pop(),push(),shift(),unshift(),sort(),splice()

  • toString(),valueOf(),toLocalString():

功能:返回数组的全部元素

注:数组名也可以返回整个数组

eg:

   var m=["am","bm","cm"];//用括号声明一个数组对象 
   alert(m.toString());//toString()返回数组对象的所有内容,用逗号分割,即am,bm,cm 
   alert(m.valueOf());//valueOf()也返回数组对象的所有内容 
   alert(m.toLocaleString());//toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究 
   alert(m);//数组名也返回数组对象的所有内容 
  • join():

功能:把数组各个项用某个字符(串)连接起来,但并不修改原来的数组

eg:

   var m=["am","bm","cm"];//用括号声明一个数组对象 
   var n=m.join("---");//用---连接am,bm,cm. 
   alert(m.toString());//m并没有被修改,返回am,bm,cm 
   alert(n);//n是一个字符串,为am---bm---cm 
  • split():

功能:把一个字符串按某个字符(串)分割成一个数组,但不修改原字符串

eg:

   var str="I love maomao,I am caolvchong"; 
   var arr=str.split("o");//按字符o把str字符串分割成一个数组 
   alert(arr);//输出整个数组 
  • slice():

功能:返回某个位置开始(到某个位置结束)的数组部分,不修改原数组

eg:

   var m=["am","bm","cm","dm","em","fm"]; 
   var n=m.slice(2);//返回第二个元素bm后面的元素,即cm,dm,em,fm 
   var q=m.slice(2,5);//返回第二个元素后到第五个元素,即cm,dm,em 
   alert(n); 
   alert(q); 

数组对象的栈操作:

  • push():数组末尾添加一个项
  • pop():删除数组最后一个项

eg:

   var m=["am","bm","cm","dm","em","fm"]; 
   m.push("gm");//在数组末尾添加元素gm 
   alert(m); 
   m.pop();//删除数组最后一个元素gm 
   alert(m); 

数组对象的队列操作:

  • unshift():数组头添加一个项
  • shift():删除数组第一个项

代码:

   var m=["am","bm","cm","dm","em","fm"]; 
   m.unshift("gm");//在数组第一个元素位置添加元素gm 
   alert(m); 
   m.shift();//删除数组第一个元素gm 
   alert(m); 
  • sort():数组按字符的ASCII码进行排序,修改数组对象

注:即便是数字数组,也将转化为字符串来进行比较排序

eg:

   var m=["am","fm","gm","bm","em","dm"]; 
   m.sort();//按字母序排序 
   alert(m); 
  • concat():在数组尾添加元素,但不修改数组对象

代码:

   var m=["am","bm"] 
   var n=m.concat("cm");//添加一项cm,并且赋予新数组对象 
   alert(m);//原数组没有被修改 
   alert(n);//输出新数组对象 
  • splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象

细节:

splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的

进行添加:splice(起始项,0,添加项)

进行删除:splice(起始项,要删除的项个数)

进行替换:splice(起始项,替换个数,替换项) 这个其实是添加删除的共同结果

eg:

   var m=["am","bm"] 
   m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bm 
   alert(m); 
   m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm) 
   alert(m); 
   m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm) 
   alert(m); 
  评论这张
 
阅读(1005)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017