【JS-4】——JavaScript关于对象的使用

对象的简介

我们前面说了JS的数据类型有6种:

  • String 字符串

  • Number 数值

  • Boolean 布尔值

  • Null 空值

  • Undefined 未定义

以上这五种类型属于基本数据类型,以后我们看到的值,只要不是上面的五种,全都是对象。

  • Object 对象

基本数据类型都是单一的值,“hello”、123、true,值和值之间没有任何的练习。

在JS中来表示一个人信息(name gender age)

var name = "孙悟空";
var gender = "男";
var age = 18;

对象属于一种复合的数据类型,在对下那个中可以保存多个不同数据类型的属性。

对象的分类

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

对象的基本操作

  • 使用new关键字调用的函数,是构造函数constructor,构造函数是专门用来创建对象那个的函数。

  • 在对象中保存的值成为属性,向对象中添加属性,语法对象.属性名 = 属性值

<script type="text/javascript">
  var obj = new Object();
  obj.name = "孙悟空";
  obj.gender = "男";
  obj.age = 18;
  console.log(obj);
</script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBAHTKmd-1588216209720)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/1.jpg)]

  • 读取对象中的属性,语法对象.属性名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zGti92Do-1588216209723)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/2.jpg)]

  • 修改对象中的属性,语法对象.属性名 = 新属性值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mr8JVRMs-1588216209727)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/3.jpg)]

  • 删除对象中的属性,语法delete 对象.属性名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wXvNP8LT-1588216209730)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/4.jpg)]

属性名和属性值

  • 属性名

    • 对象的属性名不强制要求遵守标识符的规范,什么乱七八糟的名字都能用,但是使用的时候还是尽量遵守标识符的规范。如果要使用特殊的属性名,不能采用.的方式。

    • 语法对象["属性名"] = 属性值,读取的时候也需要采取这种方式。

    • 使用[]这种形式去操作属性,更加灵活,在[]中可以直接传递一个变量,这样变量值是多少就会读取那个数值。

    • obj["123"] = 789;
      var n = "123";
      console.log(obj[n]);//也是789
      
  • 属性值

    • JS对象中的属性值可以是任意的数据类型。甚至也可以是一个对象。
  • in运算符

    • 通过该运算符可以检查一个对象中是否含有指定的属性,如果有则返回true,没有则返回false。
    • 语法"属性名" in 对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZA58nkH-1588216209732)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/5.jpg)]

基本数据类型和引用数据类型

我们说过前五种数据类型都是基本数据类型,而我们的对象是引用数据类型

我们来看看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8OCKBbO8-1588216209734)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/6.jpg)]

  • 基本数据类型是保存在栈内存中。值与值之间是独立存在的,修改一个变量不会影响其他的变量。

  • 而引用数据类型是保存在堆内存中。每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用)。

//基本值
var a = 1;
var b = a;
a = 2;
console.log(a); //输出:2
console.log(b); //输出:1

//引用值
//变量 c 和 d 指向堆中的同一个数组
var c = [0, 1, 2];
var d = c;
c[0] = 5;
console.log(c); //输出:[5, 1, 2]
console.log(d); //输出:[5, 1, 2]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEUSRspI-1588216209736)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-4】/7.jpg)]

对象字面量

  • 使用对象字面量来创建一个对象:
var obj = {};
obj.name = "孙悟空";
  • 使用对象字面量,可以在创建对象时,直接指定对象中的属性。

语法{属性名:属性值,属性名:属性值,属性名:属性值,....}

var obj2 = {
  name:"猪八戒",
  age:"28",
	gender:"男"
};
  • 对象字面量的属性名可以加引号可以加引号也可以不加,建议不加。但是如果要使用一些特殊的名字,则必须要加引号。
  • 属性名和属性值是一组一组名值对结构,名和值之间使用:连接,多个名值对之间,隔开,如果一个属性之后没有其他属性了就不要写,了。有的浏览器会报错,而且这种错误不好找。

之前的

【JS-2】—— JavaScript运算符与表达式
【JS-3】——JavaScript流程控制语句

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值