一、基本数据类型的不足:
基本数据类型都是单一的值"hello" 123 true, 值与值之间没有任何联系。
exp:用基本数据类型创建一个人的信息(name gender age )
var name = "邹邹";
var gender = "女";
var age = 18;
虽然用基本数据类型创建出了人的相关信息,但是所创建的所有变量都是独立的,不能成为一个整体。
二、什么是对象
对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性。
三、对象的分类
1、内建对象:(学习用轮子)
ES标准中定义的对象,在任何ES实现中都可以使用。比如Math,String ,Number,Boolean,Array等等,只要是JS就有这些对象,可以随便用。
2、宿主对象:(学习用轮子)
由Js的运行环境提供的对象,目前来说,主要是浏览器提供的对象,比如BOM,DOM
in 运算符。 检查对象里面是否有某个属性(使用轮子的时候常用)
语法: "属性名" in 对象; //有返回true,没有返回 false
exp: 检查 Document对象里面是否有 test 属性
console.log("test" in Document);
注意:用in检查对象中的属性时,如果该对象中没有,但是其原型对象中有,还是会返回true。所以如果只想检查这个对象但不包括类方法是否含有某个属性时,怎么办呢?解决方案,对象内置的 hasOwnProperty方法 (对象内置的方法,都被Js自动定义在对象prototype原型的prototype原型里面,看后文的函数原型)
语法: 对象.hasOwnProperty(属性名); //检查对象里面是否含有该属性,若有,返回true
3、自定义对象:(自己造轮子)
由开发人员自己创建的对象。
四、对象的创建、添加、修改、访问,删除
1、创建对象
1.1通过构造函数创建对象 (new)
使用new关键字调用的函数,是构造函数constructor
语法: var 对象名 = new Object(); // 实例化一个空对象 new在堆内存开辟一片空间
var obj = new Object();