javascript学习笔记--数组和对象

来源:互联网 发布:java构造器怎么理解 编辑:程序博客网 时间:2024/05/17 02:44

一、数组

这段时间在做前端页面的开发,发现js语法实在过于灵活,各种写法让人看得摸不着头脑,所以特地看了下视频查了些资料,现在做个总结。

数组是存放数据的容器,可以在数组中存放字符串,对象,等数据类型,javascript中的数组没有存放类型的限制。

var array = new Array();array[0] = "hyd";array[1] = 22;//不必定死数组长度数据类型,更加灵活。var array2 = new Array(3);array2[0] = "hhh";array2[1] = 22;array2[2] = 2.2;//当然也可以设定长度来控制数据量。var array3 = new Array("hyd",23);var array4 =["hyd",23];//确定知道数组数据量的情况下可以直接赋值。
可以在数组中存放函数,数组,对象。

var a = new Array();a[0] = function () {console.log("test")};a[0]();
而在数组初始化完成后可以使用for循环对数组的内容进行访问。

var x = 0;var arr = new Array("hyd",24,"福建");for (x ;x< arr.length;x++){console.log(arr[x]);}
也可以用for in 循环。

var x = 0;var arr = new Array("hyd",24,"福建");for (x in arr){console.log(arr[x]);}
数组常用的几个方法:
数组拼接concat。

var arr = new Array(3)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"var arr2 = new Array(3)arr2[0] = "James"arr2[1] = "Adrew"arr2[2] = "Martin"document.write(arr.concat(arr2))
数组元素组成字符串join输出。
var x = 0;var arr = new Array("hyd",24,"福建");document.write(arr.join());document.write("<br />");document.write(arr.join("."));//每个数据之间用“.”隔开

小结

在java中数组的使用必须在初始化的时候就定死数组的长度和数组所能存放的数据类型。而在javascript中却不用,javascript的数组并不限制存放的数据类型,也不用定死长度,这样相对于java数组来说就灵活了许多。

二、对象

javascript中对象是复合的数据类型,可以把很多数据函数的集中在一个变量,并且给其中的每个变量命名。数组也是数据的集合,但是数组中每个变量是没有名字的,只能用数组下标来命名。而对象中的数据是可以命名的,然后用名字来获取值。java中需要声明实例化才能拥有对象,而javascript直接就有对象。与javascript对象相比javascript数组必须用数组名[索引]来进行取值。而javascript是用属性名取值。
javascript对象的创建方式

var o = new Object();var a ={};//空对象
对象直接量创建

var object = {    name:"hyd",    age:24,    eat:function () {console.log("吃")}}console.log(object.name);console.log(object.age);object.eat();//可以存放函数,也可以存放数据object.adr = "福建";//与java不同。可以直接添加新的属性object.add = new Object();//直接添加对象
构造器创建(重复创建相同对象时候使用,简少代码量。)

 var  oo = function (name,age,adr) {    this.name = name;    this.age = age;    this.adr = adr;    this.eat = function () {alert("吃");}};var a = new oo ("hyd",24,"福建");console.log(a.name);console.log(a.age);console.log(a.adr);
对象属性的删除
delete 对象.属性
对象.属性 = null
对象属性的遍历

for in 循环 var o = {};o.name = "hyd";o.age = 24;o.adr = "福建";var x ;for ( x in o){alert(x);}//此时打印内容为name,age,adr。由此可知x内保存的是属性名,而要获取属性值的话如果用o.x不太合理,所以使用o[x],来获取属性值。对于一个对象同样可以用反问数组的方式来获取不过[]号中的索引值替换成属性名。而在使用这种访问方式之后取值就可以传入变量,这会使程序更加灵活。而js 的函数也可以动态生成 var a = new Function ("a,b","return a+b");a是函数名 a,b是形参,然后接着是方法体。这是javascript语言的动态性的体现。for (x in o ){alert(o[x]);}

--原型对象内容待续

0 0