javascript中的引用类型--对象(object)

本文深入探讨JavaScript中对象的定义方法、属性与方法的访问,以及数组的各种实用操作,包括遍历、添加、删除和转换为字符串等。同时,介绍了ES5新增的迭代和归并方法,以及如何判断一个对象是否为数组。

概念讲解
对象的定义方法如下:
对象的定义方式右两种,如果向遍历对象中的所有元素,可以使用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中,数据的基本类型主要分为六类(五类基本类型,一个引用类型)StringBooleanNumberundefinednullobject(引用类型)
而我们常用的数组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>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值