Js学习04--对象

1.如何辨别js中的对象

  除了五种基本的数据类型,其他的都是对象。万物皆对象。

2.Js中对象的分类

  1)内建对象

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

    eg:String、Number、Boolean、Function...

  2)宿主对象

    由JS运行环境提供的对象,现在主要指浏览器提供的对象。

    eg:DOM对象、BOM对象。

  3)自定义对象

    自己创建的对象

3.如何创建对象

  1)构造函数

    构造函数是专门用来创建对象的函数。

    使用new关键字调用的函数,可以被称为构造函数。

    格式: var obj = new Object();

  2)定义

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

    向对象添加属性:对象.属性名=属性值;

    读取对象中的属性:对象.属性名(如果读取对象中没有的属性,不会报错,会返回undefined)

    修改对象的属性:对象.属性名 =  新值;

    删除对象的属性:delete 对象.属性名;

4.属性名

  如果使用特殊的属性名,不能采用.来操作,需要使用另一种方式。

  语法:对象["属性名"] = 属性值;(读取时也要用该方法)

  eg:obj["666"] = 888;

5.基本类型和引用类型在堆栈中的表示

  1)基本数据类型:String、Number、Boolean、Null、Undefined

  2)引用数据类型:Object

  3)区别

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

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

  4)ps:如果比较两个基本数据类型的值时,就是比较值。

      如果比较两个引用数据类型的值时,就是比较对象的内存地址。

6.对象字面量

  使用对象字面量,可以在创建对象时,直接指定对象中的属性。

  语法:var 对象 = {属性名:属性值,属性名:属性值...};(属性名可以加“”也可以不加,建议不加,如果属性名特殊,则要加)

 

posted @ 2019-05-07 14:45  阿楠楠  阅读(102)  评论(0编辑  收藏  举报