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,对象属相表达方式