js中的引用类型是一种数据结构,他与传统面向对象语言中的类相似,但又不同因为js中没有类的定义和接口等基本结构。引用类型也被称为对象定义,用来描述一类对象所具有的属相和功能。引用类型的值是该引用类型的一个实例。

1.Object类型是js中使用最多的引用类型。创建Object实例的方式:

<script type="text/javascript">
		// 1.使用new 关键字后跟Object构造函数;
		var obj1=new Object();
		obj1.name="fancy";
		obj1.age=28;
		//2.使用对象字面量表示法,不同属性之间用逗号分开;
		var obj2={
			name:"fancy",
			age:28
		}
		//3
		var obj3={};//等价于new Object();
		obj3.name="fancy";

	</script>

2.访问对象属性:一般我们访问对象的属性是用点表示法,在js中除此之外还可以用方括号表示法来访问对象属性如下面的例:

var person={
			name:"fancy",
			age:27,
			sex:"female"
		} 
		alert(person.name);//fancy
		alert(person["name"]);//fancy

从上面看两者没啥区别,但是使用方括号的好处就是可以使用变量来访问对象的属性,还有如果属性名中有空格关键字等使用点表达法会出现报错。

//接着上面的例子
var propertyName="age";
		alert(person[propertyName])//27;

3.下面看到面试题目:将url参数以对象的形式表现出来 (eg:http://www.baidu.com?a=1&b=2&c=3)

看到题目我们先来分析一下:首先我们可以把url 看成一个字符串,然后获取“?”后面的参数这里我们可以使用字符串的split("?")方法(该方法是基于指定的分隔符将一个字符串分割成多个子字符串,然后将子字符串放在一个数组中。);接着我们可以用同样的方式让分离出来的参数(a=1&b=2&c=3)在进行split("&")匹配分割成([a=1,b=2,c=3])这样的数组;再接着在对该数组中的每一项在进行split("=")匹配分;最后在把上述分割出来的参数保存在一个对象中就可以了(这里就用到了对象属性方括号表示法);代码如下:

<script type="text/javascript">
		var url="http://www.baidu.com?a=1&b=2&c=3";
		var urlArray=url.split("?")[1];//使用split()分理处URL中的参数(a=1&b=2&c=3)
		//alert(urlArray)(a=1&b=2&c=3);
		var parameter=urlArray.split("&");//再次使用split("&")分离出[a=1,b=2,c=3]
		//alert(parameter)[a=1,b=2,c=3];
		var obj={};//声明一个空对象
		for(var i=0;i<parameter.length;i++){//对parameter中的每项进行split()让参数名与参数值分开;
			var k=parameter[i].split("=")[0];//k代表对象属性名的变量
			var v=parameter[i].split("=")[1];//v代表对象属性值的变量
			obj[k]=v;
		}
		console.log(obj);//结果 {a: "1", b: "2", c: "3"}
	</script>

总结该题目主要考查1.string 的split()方法;2,对象属相表达方式