对象及对象的基本操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
js中数据类型
String
Number
Boolean
Null
Undefined
以上五种属于基本数据类型,以后我们看到的值只要不是上边的五种全都是对象
Object
基本数据类型都是单一的值 值与值之间没有任何的联系
对象的分类
1.内建对象
有ES标准中定义的对象,在任何的ES的实现中都可以使用
比如:Math,String,Number,Boolean,Function,Object
2.宿主对象
由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
比如BOM DOM
3.自定义对象
由开发人员自己创建的对象
创建对象
使用new关键字调用的函数,是构造函数constructor
构造函数式专门用来创建对象的函数
使用typeof检查一个对象是,会返回object
在对象中保存的值称为属性
向对象添加属性
语法:对象.属性名 = 属性值;
读取对象的属性值
语法:对象.属性名
修改对象的属性值
语法:对象.属性名=新值;
删除对象的属性
语法:delete 对象.属性名
<script>
let obj = {};
obj.name = "孙悟空";
</script>
</body>
</html>
属性名和属性值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function createPerson(name,age,gender) {
let obj = new Object();
obj.name=name;
obj.age=age;
obj.gender=gender;
}
let obj2 = createPerson("猪八戒",23,"女");
</script>
</body>
</html>
基本数据类型和引用数据类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
在js中一共有六种数据类型
基本数据类型
* String 字符串
* Number 数值
* Boolean 布尔值
* Null 空值
* Undefined 未定义
*
引用数据类型
* Object 对象
JS中的变量都是保存到栈内存中存储
值与值之间是独立存在,修改一个变量不会影响其他的变量
对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间
而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用
当通过一个变量修改属性是,另一个也会受到影响
当比较两个基本数据类型的值是,就是比较值
而当比较两个引用数据类型时,他是比较的对象的内存地址
如果两个对象一模一样,但是地址不同,返回的也是false
let obj1 = new Object();
let obj2 = new Object();
obj1.name = "沙和尚";
obj2.name = "沙和尚";
</body>
</html>
对象字面量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
使用对象字面量来创建一个对象
<script>
let obj = {};
obj.name = "孙悟空";
let obj2 = {
name:"猪八戒",
age:28,
gender:"男"
};
</script>
</body>
</html>
对象的方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
let obj = new Object();
obj.name ="孙悟空";
obj.age =18;
obj.sayname = function () {
console.log(obj.name);
};
obj.sayname();
</script>
</body>
</html>
使用工厂方式创建对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function createPerson(name,age,gender) {
let obj = new Object();
obj.name=name;
obj.age=age;
obj.gender=gender;
}
let obj2 = createPerson("猪八戒",23,"女");
</script>
</body>
</html>
枚举对象中的属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
let obj ={
name:"1",
age:2,
}
每次执行时,会将对象中的一个属性的名字赋值给变量
for(let n in obj){
console.log("属性值:"+obj[n]);
}
</script>
</body>
</html>