【JS笔记:JS对象】JavaScript对象相关

对象的概述:

概述: 对象属于一种引用数据类型,在对象中可以保存多个不同数据类型的属性,用来保存自己的属性值,属性值可以是任意数据类型。

对象的分类:

  1. 内建对象
    • 由ES标准中定义的对象,在任何的ES的实现中都可以使用
    • 比如:Math对象、String对象、Number对象、Boolean对象、Function对象、Object对象…
  2. 宿主对象
    • 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
    • 比如:BOM对象、DOM对象
  3. 自定义对象
    • 由开发人员自己创建的对象

创建一个对象:

  • 使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象的函数,使用typeof检查一个对象时,会返回object;也可以使用对象字面量的形式创建一个函数。
//创建一个普通对象
var obj = new Object();
var obj = {};
//创建一个函数对象
var fun = new Function();
function fn(){};
//创建一个数组对象
var arr = new Array();
var arr = [];
//创建一个正则对象
var reg = new RegExp(pattern, attributes);
var reg = //;
//创建一个字符串对象
var str = new String(s);
var str = "s";
//创建一个布尔对象
var bool = new Boolean(value);
var bool = true;
//创建一个数值对象
var myNum = new Number(value);
var num = 1;
//创建一个日期对象
var myDate = new Date();

向对象添加属性或修改属性值

语法:对象.属性名 = 属性值;

//创建一个obj对象
var obj = new Object();
//向obj中添加一个name属性,其属性值为“孙悟空”
obj.name = "孙悟空";
//向obj中添加一个gender属性,其属性值为“男”
obj.gender = "男";
//向obj中添加一个age属性,其属性值为18
obj.age = 18;
//修改name属性的属性值为“猪八戒”
obj.name = "猪八戒";

读取对象中的属性

语法:
第一种方式:对象.属性名
第二种方式:对象[“属性名”] = 属性值

**注:**如果要使用特殊的属性名,不能采用第一种方式的方式来操作,类如属性名是一个变量,则应该使用第二种方式。如果读取对象中没有的属性,不会报错而是会返回undefined。

var obj = new Object();
//向obj中添加一个name属性,其属性值为“孙悟空”
obj.name = "孙悟空";
//向obj中添加一个gender属性,其属性值为“男”
obj.gender = "男";
//向obj中添加一个age属性,其属性值为18
obj.age = 18;
//读取obj对象中的gender属性值
console.log(obj.gender); // 输出“男”
console.log(obj.hello); //因为obj对象不存在hello属性,因此输出undefined

删除对象的属性

语法:delete 对象.属性名

var obj = new Object();
//向obj中添加一个name属性,其属性值为“孙悟空”
obj.name = "孙悟空";
//向obj中添加一个gender属性,其属性值为“男”
obj.gender = "男";
//向obj中添加一个age属性,其属性值为18
obj.age = 18;
//删除obj对象中的name属性
delete obj.name;

判断一个对象是否拥有一个属性

语法:“属性名” in 对象
该语句会有一个返回值,如果有则返回true,没有则返回false

var obj = new Object();
//向obj中添加一个name属性,其属性值为“孙悟空”
obj.name = "孙悟空";
//向obj中添加一个gender属性,其属性值为“男”
obj.gender = "男";
//向obj中添加一个age属性,其属性值为18
obj.age = 18;
//判断obj对象中是否含有“name”属性
console.log("name" in obj); // 输出“true”
//判断obj对象中是否含有“hello”属性
console.log("hello" in obj); //输出“false”
发布了20 篇原创文章 · 获赞 11 · 访问量 1747

猜你喜欢

转载自blog.csdn.net/qq_16221009/article/details/103098353