javascript引用类型

对象在Javascript中被称为引用类型的值,也就是说引用类型的值(对象)是引用类型的一个实例。有ECMAscript中,引用类型是一种数据结构,用于 将数据和功能组织在一起,它也常被称为类,有时候也被称为对象定义,因为他们描述的是一类对象所具有的属性和方法。

var person = new Object();

这行代码创建了Object引用类型的一个新实例。

引用类型:

1.Object类型

2.Aarray类型

3.Date类型

4.RegExp类型

5.Function类型

6.基本包装类型:Boolean类型,Number类型,String类型

7.单体内置对象:Global对象,Math对象

一、Object类型

我们看到大多数引用类型值都是Object类型的实例。

创建Object实例的方式有 两种,第一种是使用new操作符后跟Object构造函数:

        var person = new Object();
        person.name = "Jin";
        person.age = 29;
        //alert(person.name + person.age);

另一种方式是使用对象字面量,对象字面量是对象定义的一种简写形式。

        var person = {
            name: 'Jin',
            age: 29,
        }
        console.log(person.name + ' ' + person.age);

访问属性的表示法:

        //两种形式同样结果
        alert(person["name"]); // "Jin"
        alert(person.name) // "Jin"

使用方括号的主要优点是可能通过变量来访问属性, 如

var propertyName = "name";
alert(person[propertyName]); //"Jin"

如果属性中包含会导致语法错误的字符,或者属性 名称使用的是关键字或保留字。也用方括号的表示法:

 person["first name"] = "Jin";

由于"first name"包含一个空格,所以不表用点表示法。

 

二、Array类型

ECMAscript数组的每一项都可以保存任何类型的数组, 就是说,数组的第1个位置来保存字符串,第2个位置 来保存对象,第3个位置来保存对象。

创建数组有2种形式。第一种是构造函数:

        var colosr = new Array();
        var colosr = new Array(20);
        var colosr = new Array("red","blue","black");

也可省去new操作符:

        var colors = Array(3);
        var names = Array("Greg");

创建 数组的第2种方式是 使用数组字面量表示 法:

        var colors = ['red','blue','black'];//创建一个包含3个字符串的数组
        var names = []; //创建一个空数组
        var values = [1,2, ]; //不要这样!这样会创建一个包含2或3项的数组
        var values = [ , , , , , ] //不要这样!会创建一个包含5或6的空数组

 在读取和设置数组的值时,要使用方括号并提供相应值的基于0的数字索引:

        var colors = ["red", "blue", "black"]; //定义一个字符串数组
        alert(colors[0]); //显示第一项 
        colors[2] = "green"; //修改第三项
        colors[3] = "purple"; //新增第四项
        console.log(colors); //colors =  ["red", "blue", "green", "purple"]
        colors.length; //4

数组的length属性很有特点--它不是只 读的。

        var colors = ["red", "blue", "black"]; //定义一个字符串数组
        colors.length = 2; //改变数组长度为2
        console.log(colors[2]); //undefined
        
        colors.length = 4 //改变数组长度为2
        console.log(colors[3]); //undefined

利用length 属性也可以方便地在数组末尾添加新项:

        var colors = ["red", "blue", "black"]; //定义一个字符串数组
        colors[colors.length] = 'green'; //在位置3添加一个颜色green
        colors[colors.length] = 'gray'; //再在位置4添加一个颜色gray
        console.log(colors); // ["red", "blue", "black", "green", "gray"]

由于数组的最后一项始终是length-1,因此下一个就是length,每当末尾添加一项后,其length属性都会自动更新。

        var colors = ["red", "blue", "black"]; //定义一个字符串数组
        colors[99] = 'brown'; //brown
        console.log(colors.length); //100

三、Date类型

ECMAScript中的Dateo类型是早期java中的java.util.Date类基础上修改的。为此,Date类型使用自UTC1970年1月1日午夜零时开始经过的毫秒数来保存日期

要创建一个日期对象,使用new操作符和Date构造函数

        var now = new Date()
        console.log(now);

四、RegExp类型

ECMAScript通过RegExp类型来支持正则表达式

var expression = / pattern / flags;

五、Function类型

每个函数都是Function类型的实例。由于函数是对象,因此函数名实际上就是一个指向 函数的指针。函数通常是使用声明 语法定义的。

        //1
        function sum(num1, num2){
            return num1 + num2;
        }
        //2
        var sum = function(num1, num2){
            return num1 + num2;
        };

函数2没有函数名,这是因为在使用函数表达式定义函数时,没有必要使用函数名--通过变量sum即可引用函数。

 

六、基本包括类型

ECMAScript还 提供了3个特殊的引用类型:Boolean,Number和String

因为有了基本包装 对象,所以Javascript中的基本 类型值可以被当作对象来访问。

        var s1 = new String("some text");
        var s2 = s1.substring(2); // 'me text' substring() 方法用于提取字符串中介于两个指定下标之间的字符。
        s1 = null; // null

(1)创建string类型的一个实例

(2)在实例上调用指定的方法

(3)销毁这个实例

 

七、单体内置对象

内置对象的定义:由ECMAscript实现提供的,不依赖宿主环境的对象,这些对象在ECMAscript程序执行之前已经存在。

两个单体内置对象:Global,Math

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值