概念讲解
对象的定义方法如下:
对象的定义方式右两种,如果向遍历对象中的所有元素,可以使用for …in 方法;
对象主要包含两类元素,属性和方法(function)
如果想查看对象中是否包含某属性或方法,可以使用语句var a = value in object,如果有,返回true
访问对象中的属性和方法有两种形式,点表示法和方括号表示法
<script>
//对象的定义方式之一
//之二: var obj =new Object()
var obj = {
name: 'tan',
age: 20
};
obj.sex = "girl"; //添加过去对象属性的方式一
var prom = "new";
obj["prom"] = "newDay"; //以此形式来获取修改对象的值二
console.log(obj.valueOf());
//通过上述方法可以枚举到对象的所有属性和值,注意这时候用的是方括号表示法
//如果使用点,那么结果就不可控制了
for(var prop in obj){
console.log("Name is:"+prop+"--Value is:"+ obj[prop]);
}

//判断对象中是否存在某个属性
var hasSex = "sex" in obj;
console.log(hasSex); //true
delete obj.sex; //删除对象的属性
console.log(obj.valueOf());
var hasSex1 = "sex" in obj;
console.log(hasSex1); //false
</script>
1、对象之——数组
数组的方法
concat(),可接受一个或多个数组,并按照先后顺序添加到原来数组的副本中,对原数组没影响
slice(起始位,终止位) ,创建一个新数组,由起始位到终止位前一个之间的数据组成
转换成字符串的方法:
toString() //返回的是一个以都好分割的字符串
toLocalString()
valueOf() //返回的是一个数组
join() //接受一个参数,返回以参数作为分隔符的字符串
基本方法:
push()
pop()
shift()
unshift()
reverse() ,反转数组
sort(),对数组进行重排序,缺点是对每一项调用toString()方法,所以数值的话得到的结果不一定理想
操作方法:
indexOf(某个值),如果存在该值返回1,否则-1 (ES5新增)
lastIndexOf()
splice(起始位,删除的位数,插入或替换的数),可以实现的作用有删除、插入、替换;
迭代方法:(ES5新增)
传入这些方法中的函数都接受三个参数,item--数组项的值;index----索引;array---数组本身
every(function(item,index,array){}) //,返回boolean
some() //,返回boolean,只要有一个数据满足要求就返回true
filter() //,返回数组 ,只返回满足条件的数据
map() // ,返回数组 ,返回数组中所有数据进行某项操作后的新数组
forEach() //,相当于for循环操作,不会返回数据
归并
传入这些方法中的函数接受四个参数:pre---前一项;cur---后一项;index---索引;array---数组本身;
执行后的返回值会作为pre值继续执行操作
reduce() //,返回最后值
reduceRight()
判断一个对象是不是数组
我们知道,在javascript中,数据的基本类型主要分为六类(五类基本类型,一个引用类型):
String、Boolean、Number、undefined、null、object(引用类型)
而我们常用的数组Array就属于对象的一种,那么如何判断该对象就是数组呢?
很明显,如果我们使用arr.typeof()会返回object,所以我们应该使用var a = arr instanceof Array;
除此之外,ES5还新增了一个方法:
Array.isArray()
根据上面的概念,对每个方法做了一个实例,接下来直接看代码,概念又不理解的,就可以直接对照实例来理解哦!
<script>
var arr1 = [1,4,6,8,9,5,3,4];
var a = arr1 instanceof Array;
var b = Array.isArray(arr1);
console.log("instanceof方法的使用:"+a); //return true
console.log("isArray方法的使用:"+b); //return true
var redu = arr1.reduce(function(pre,cur,index,array){
return pre*cur;
});
// alert(redu);
var conc = arr1.concat([3,5],[8,7]);
console.log("原数组是:"+arr1+",concat之后数组是"+conc);
var s = arr1.join("");//将数组转换成字符串形式
var s1 = arr1.join("·");//将数组转换成字符串形式 typeof(s1) = String
var s2 = arr1.valueOf(); //typeof(s2) = object
console.log("s---"+s+"----s1---"+s1+"-----s2---"+s2);
console.log(typeof(s)+"----"+typeof(s2)+"-----数组的类型是:"+typeof(arr1));
function removeArr(arr){
var l = arr.length - 1;
for(var i = 0;i <= l;i++){
if(arrTempt.indexOf(arr[i])===-1){
arrTempt.push(arr[i]);
}
}
// return arrTempt;
console.log(arrTempt)
}
removeArr(arr1);
for(var i = 0; i <=arr1.length-1; i++){
var t = arr1.indexOf(arr1[i],i+1);
if(t){
arr1.splice(t,1);
}
--i;
}
console.log("arr1:"+ arr1);
var a = arr1.indexOf(4);
if(a)
var b = arr1.indexOf(4);
console.log(a+"---"+b);
</script>
本文深入探讨JavaScript中对象的定义方法、属性与方法的访问,以及数组的各种实用操作,包括遍历、添加、删除和转换为字符串等。同时,介绍了ES5新增的迭代和归并方法,以及如何判断一个对象是否为数组。
435

被折叠的 条评论
为什么被折叠?



