Javascript-对象

58 阅读2分钟
对象
  • 对象是一个复杂的数据类型
  • 可以认为是存储了一些基本数据类型的一个集合
var obj = {
   num: 100,
   str: ‘hello world’,
   boo: yrue
   }
  • 这里的{ }与函数中{ }不一样
  • 函数里面的是写代码,对象里面是写一些数据
  • 对象就是一个键值对的集合
  • { }里的每一个键都是一个成员
  • 可以把一些数据放在一个对象里面,他们就互不干扰了
创建对象

1.使用new关键字调用的函数,就是构建函数constructor,构建函数是专门用来创建对象的函数使用typeof检查一个对象时,则会返回object

var obj=new Object();

2:向对象添加属性

        在对象中保存的值称为属性

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

obj.name = "张三";//向obj中添加一个name属性,name属性值为'张三'
obj.gender = "男";//向obj中添加一个gender属性
obj.age = 18;//向obj中添加一个age属性

3.读取对象中的属性 语法:对象.属性名

  如果读取对象中没有的属性,不会报错,而会返回undefined

4.修改对象的属性值

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

5.删除对象的属性值

语法:delete 对象.属性名

   delete obj.name;//删除name属性
 
   console.log(obj.name)//undefined

image.png

  • 补充:字面量由字母,数字等构成的字符串或数值,只能作为等号右边的值如:int=8 8为字面量 语法:{属性名:属性值,属性名:属性值...}

  • 内置构造函数希望初始有值要通过.的形式,往上面挂上你想要的

  • 规定:k值符合变量书写规则,若起的名字不符合变量规则的可以通过添加引号

image.png

对象的基本操作

增 删 改 查

对象的遍历

方法一:

image.png

方法二:

使用for

image.png image.png

效果如下

image.png

不同数据类型的存储(??)

image.png

修改一个另一个也会改变的原因为 两个在栈里命名不一样但是再堆中为一个内容

image.png

  • 判断两个对象是否相等就是在判断两个地址相不相等
  • 简单类型的改了其中一个另一个不受影响原因为复制(==)的是这个值
  • 复制复杂类型的只是将样式地复制了一份所以改一个另一个也会改变