1、对象的概念
JS中的基本数据类型:
数值、字符串、布尔值、空值、未定义
只要不是以上基本数据类型,就全都是对象
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性
2、对象的分类
(1)内置对象
由ES标准中定义的对象,在任何的ES的实现中都可以使用
(2)宿主对象
由JS得运行环境提供的对象,例如DOM和BOM
(3)自定义对象
由程序员自己定义的对象
3、对象的基本操作
(1)创建对象、添加属性、修改属性值、删除属性
--使用构造函数来创建对象
属性:在对象中保存的值称为属性
语法:属性名:属性值
(使用new关键词调用的函数是构造函数)
//创建对象
var obj = new Object();
console.log(obj);
//向对象中添加属性
obj.name = "zhangsan";
obj.age = 18;
//修改属性值
obj.age = 12;
//删除对象的属性
delete obj.name;
(2)属性名和属性值
// 属性名:对象的属性名不强制要求遵守标识符的规范;属性名可以不加引号,但如果要使用特殊字符就要给属性加引号
//属性名:如果要是用特殊的属性名,不能采用.的方式来操作;而是应该使用 对象["属性名"] = 值
// 使用[]这种形式,可以直接传递一个变量
obj["123"] = 789;
console.log(obj["123"]);
var n = "nihao";
obj[n] = "nihao";
console.log(obj[n]);
// 属性值
// JS中的属性值可以是任意的数据类型,也可以是一个对象
(3)检测一个对象中是否含有这个属性
// in运算符:该运算符可以检查一个对象中是否含有指定的属性;有就返回true;没有就返回false
// 语法:"属性名" in 对象
console.log("name" in obj);
(4)基本数据类型和引用数据类型
// JS中的变量都是保存在栈内存中
// (1)基本数据类型
// 基本数据类型的值是直接在栈内存中存储;值与值之间是相互独立的,修改一个变量不会影响其他变量
// (2)引用数据类型
// 对象是保存在堆内存中的,每创建一个对象就在堆内存中开辟一个新的空间,而变量保存的是对象的内存地址
// 如果两个变量保存的是同一个对象的引用,当通过一个变量去修改属性时,另一个也会受到影响
思维导图: