javascript004引用类型

–掌握数组的概念、特性、常用方法(重点)

–掌握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>
时间: 2024-08-12 05:52:43

javascript004引用类型的相关文章

C# 引用类型之特例string

在C#编程的时候经常会使用字符串(string)类型,它也是引用类型,但是处处都不作为引用的用法来使用,实属特例,下来我一一罗列出来,供自己记忆方便: 1)字符串的直接赋值:本身字符串就是引用类型,应该使用  new 对象方法一个实例,但是微软为了方便大家,可以直接定义字符串变量 并且赋值操作,例如: string a = "我的中国心"; ,这样只是简化我们的操作: 2)一个字符串赋值给另一个字符串变量:正常的引用类型会将两个引用变量指向同一个地址,但是一个字符串变量赋值给另一个字符

JavaScript的进阶之路(三)引用类型之Object类型和Array类型

引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var obj1= new Object(); console.log(obj1); obj1.name="吴琼"; obj1.age=28; console.log(obj1.name+" "+obj1.age); //对象字面量语法 ,有点封装的感觉 var obj2 = {

值类型与引用类型的区别

值类型 基本类型  4类8种 整型  byte   字节型   1长度   0~255 short  短整型   2长度 int      整型      4长度 long   长整型   8长度 浮点型  float     单精度浮点型 double 双精度浮点型 字符型  char  单字符型  数据必须包裹在单引号之间 波尔型  bool  逻辑型  true 真.对 /  false  假.错 枚举类型 结构体 引用类型               字符串   string  多个字符

java中四种引用类型(对象的强、软、弱和虚引用)

对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期.这4种级别由高到低依次为:强引用.软引用.弱引用和虚引用. ⑴强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足,Java虚拟机宁愿抛出O

javascript中用来定义引用类型的一种&quot;默认&quot;模式

// 终极版:组合使用构造函数模式和原型模式:***************************** // 评价:集构造函数模式和原型模式之大成: 用来定义引用类型的一种默认模式 function Person(name, age, job){ //构造函数用来定义实例属性 this.name = name; this.age = age; this.job = job; this.friends = ["Shelby","Court"]; } Person.p

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&

C# 引用类型和值类型

1.引用类型 FCL(Framework)中的大多数类型都是引用类型,引用类型总是在托管堆中分配的,C#的new操作符会返回对象的内存地址,也就是指对象数据的内存地址.在使用引用类型时,存在以下性能问题,这是我们在开发中必须要注意的: a.内存必须从托管堆上分配(也就是说每new一个对象,会占用内存,对象过多就会导致内存占用) b. 堆上分配的每个对象都有一些额外的成员,这些成员必须初始化 c.对象中的其他字节(为字段而设),总是设为0 d.从托管堆中每分配一个对象,可能强制执行一次垃圾回收操作

定义类+类实例化+属性+构造函数+匿名类型var+堆与栈+GC回收机制+值类型与引用类型

为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会. 面向对象编程也叫做OOP编程 简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰. 类的概念: 类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法. 类定义了类的每个对象(称为实例)可以包含什么数据和功能. 类中的数据和函数称为类的成员:数据成员        函数成员 数据成员: 数据成员

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.