–掌握数组的概念、特性、常用方法(重点)
–掌握Object,学会使用对象(重中之重)
–了解其他引用类型对象
一:数组
•在ECMAScript中数组是非常常用的引用类型了。ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组也是一种对象。
•特点:
–“数组”即一组数据的集合。
–js数组更加类似java的容器。长度可变,元素类型也可以不同!
–数组长度随时可变!随时可以修改!(length属性)
•常用方法:
–push、pop
–shift、unshift
–splice、slice
–concat、join、sort、reverse等
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        
        <script type="text/javascript" charset="utf-8">
            
            /**
             * 数组本身也是对象,是引用类型
             * js中的数组类似java中的map容器,长度可以改变,元素类型任意
             */
            //var arr1 = new Array();    //即使指定长度也没用,长度可随时变  不推荐用
            
            //推荐方式:
            //var arr = [1,2,3,true,"aaa",new Date()];
            
            //alert(arr.length);
            //arr.length = 5;    
            //alert(arr);  //隐式调用arr.toString方法,并截取前五个元素1,2,3,true,"aaa"
            
            /**
             * push 和 pop 方法
             */
            /*
            var arr =[];
            //push往数组追加元素,可以多个有返回值为新数组长度
            var result = arr.push(1,2,'aa',true);
            alert(arr);    //1,2,'aa',true
            alert(result); //4
            //从数组尾部移除一个元素,返回值为移除的元素
            var re = arr.pop();
            alert(arr);    //1,2,'aa'
            alert(re);    //true
            */
            /**
             * shift  和 unshift 方法
             */
            /*
            var arr = ["aa",1,2,true];
            var re = arr.shift();    //从头部移除一个元素,返回移除的元素
            alert(re);
            
            var r1 = arr.unshift(10,false); //从头部插入多个元素,返回新数组的长度
            alert(r1);    
             */
            /**
             * splice截取与替换数组元素 操作数组本身、slice方法:不操作数组本身
             */
            //splice :第一个参数:起始位置
            //           第二个参数:截取的个数
            //           第三个参数以后:追加的元素
            //var arr = [1,2,3,4,5];
            //arr.splice(1,2,3,4,5);    //134545
            //arr.splice(1);    //从第一个截取,就剩下1了。
            //arr.splice(1,2); //从第一个开始截,往后2个。1 4 5 
            //alert(arr);
            
            //slice 从位置2截取到位置4:左闭右开 。返回截取的内容
            /*
            var arr = [1,2,3,4,5];
            var r = arr.slice(2,4);     
            alert(r);    
            alert(arr);    //12345
            */
            
            //操作数组的方 concat 合并。 join 在每个元素之间加入内容   不操作数组本身 
            /*
            var arr1 = [1,2,3,true];
            var arr2 = ['aa','bb'];
            var r1 = arr1.concat(arr2);    //concat
            //alert(r1);
            
            var r2 = arr1.join('-');    //join
            alert(r2);*/
            
            /*
             * sort正序排序 需要自己定义排序规则
             * reverse 倒叙排序   需要自己定义排序规则
             */
            var arr1 = [5,2,1,4,3];
            var arr2 = [10,2,4,1,7];
            
            //arr1.sort();
            //alert(arr1);//正序排序12345
            //arr1.reverse();//倒叙按集合位置排序
            //alert(arr1);
            //arr2.sort();
            //alert(arr2); //1 10 2 4 7 按字符串比较
            
            function compare(value1,value2){
                if(value1 < value2){
                    return -1;        //1 调整顺序,倒叙
                }else if(value1 > value2){
                    return 1;        //-1
                }else{
                    return 0;
                }
            }
            //传入排序规则  1,2,4,7,10        
            arr2.sort(compare);
            alert(arr2);
        </script>
    </head>
    <body>
    </body>
</html>

 

欢迎关注个人公众号一起交流学习: