前面学的String、Number、Boolean、Null、Undefined是基本的数据类型。
如果一个变量不是这几种属性,则它是Object。
基本的数据类型都是单一值,数据之间没有关系。比如一个人的身高体重年龄,得用3个变量单独写,且没啥关系,这样就不是很智能,且容易乱。
这时候就可以用对象了。
对象是一种复合的数据类型,可以保存多个不同数据类型的属性。
对象的分类
1.内建对象:ES标准中定义的对象,在任何ES的实现中都可以使用。
2.宿主对象:由JS的运行环境提供的对象,目前来讲主要是浏览器提供的对象。(比如BOM和DOM,这是两个组,里面有很多对象)
3.自定义对象:由开发人员自己创建的对象。
创建对象
<script>
/*
使用new关键字调用的函数,是构造函数constructor
构造函数是专门来创建对象的函数
*/
var obj = new Object();
</script>
输出它看看:
var obj = new Object();
console.log(obj);
是个空的object。
输出typeof:
var obj = new Object();
console.log(typeof obj);
属性
在对象中保存的值称为属性。
语法:对象.属性名 = 属性值;
<script>
var obj = new Object();
obj.name = "小欣";
obj.gender="男";
obj.age=22;
console.log(obj)
</script>
读取属性
<script>
var obj = new Object();
obj.name = "小欣";
obj.gender="男";
obj.age=22;
console.log(obj.name);
</script>
如果提取一个不存在的属性会怎样?
<script>
var obj = new Object();
obj.name = "小欣";
obj.gender="男";
obj.age=22;
console.log(obj.na);
</script>
修改属性值
语法:对象.属性名 = 新值;
和创建之没啥区别
<script>
var obj = new Object();
obj.name = "小欣";
obj.gender="男";
obj.age=22;
console.log(obj.name);
obj.name = "孙悟空";
console.log(obj.name);
</script>
输出属性
语法:delete 对象.属性名;
<script>
var obj = new Object();
obj.name = "小欣";
obj.gender="男";
obj.age=22;
console.log(obj.name);
delete obj.name;
console.log(obj.name);
</script>