七,JS对象

一,对象简介

在JS中数据类型:String字符串,Number数值,Boolean布尔值,Null空值,Undefined未定义和Object对象。前5种是基本数据类型,当我们看到的值不是上面5种都是对象。

基本数据类型都是单一的值:“hello”,123 ,true,值与值之间没有任何的联系。

在JS中表示一个人基本信息(name,gender,age):如果使用基本数据类型,我们所创建的变量是独立的,不能成为一个整体。

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

对象的分类:

1.内建对象

      由ES标准中定义的对象,在任何的ES实现中都可以使用

      比如:Math  String   Boolean  Function Object

2.宿主对象

     由JS的运行环境提供的对象,目前来讲主要由浏览器提供的对象

     比如: BOM  DOM,

consloe.log()中的consloe就是对象,是由浏览器提供的documwnt.write()

3.自定义对象

        由开发人员自己创建的对象

二,对象的基本操作

1.创建对象

   

2.向对象中添加属性名和属性值

3.读取对象中的属性值

4.修改对象的属性值

5.删除对象的属性

三,属性名和属性值

1.对象的属性名不严格遵守标识符规范,在运算符的优先级中我们可以看到点.,中括号[],new的优先级最高处于同一列。

2.属性值:JS对象的属性值,可以是任意的数据类型,甚至也可以是一个对象,

3.in运算符

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

基本数据类型:Number ,null ,undefined,Boolean,String

引用数据类型:Object

内存分为两大块:栈内存,堆内存

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

定义变量a后在占内存中创建一个变量a,它保存的值为123;将a赋值给b,将变量a的值复制一份放到b所保存的栈内存中;a++以后变量a中保存的值自增1,值与值之间是独立存在的,修改一个变量不会影响其他的变量。

对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存到的是同一个对象引用,当通过一个变量修改属性时,另一个也会受到影响。

创建一个对象,声明变量obj 存放在占内存中,new 意味着在堆内存中开辟一个新的空间,专门用来保存这个对象,这个空间没有名字,但有内存地址(这块内存专门来保存这个obj对象),栈和堆如何建立联系呢?在变量里保存堆得内存地址,变量obj就与对象建立了联系。

往obj里面添加属性name="swk",往变量对应的地址里面添加,定义一个新的变量obj2,定义变量后先在栈内存中,obj2=obj 此时没有创建新的对象,只是将变量obj中保存的地址复制给obj2了,此时obj 和obj2指向的是同一个对象。修改obj.name = "zbj",此时obj2对应的对象也变了,变量对于引用类型来说保存的是引用(内存地址),变量对于基本类型来说保存的就是变量的值。

将obj2变量的值设置为null ,之前obj2变量与对象建立了连接,将obj2=null 后变量obj2和对象之间的连接就断开了,

var创建一个变量obj3 ,栈内存中保存obj3 ,出现new了就在堆内存中开辟出一段内存空间;obj4新变量,存放在栈内存中,又出现new了就需要在堆内存中开辟出新的内存空间来保存这个对象。堆中这两个对象是完全不同的,只是 张的一样。

比较两个基本数据类型的值时 就是比较值;而比较两个引用数据类型的值时比较的是对象的内存地址,

五,对象字面量

对象字面量的属性名可以加引号也可以不加,一般是不加;如果使用一些特殊的名字,则必须加引号。

补充:创建一个对象,函数也可以作为对象属性

调函数和调方法只是名称上的区别

枚举对象中的属性:

在开发中我们可能并不知道对象有多少个属性,如document属性是定义好的,我们并不知道有哪些,就需枚举,

枚举对象中的属性:for...in语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值