定义

对象是JS中的引用数据类型。对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性。使用typeof检查一个对象时,会返回object。

分类

内置对象

由ES标准定义的对象,在任何ES的实现中都可以实现。比如 Math String Number Boolean Function Object...

宿主对象

由 JS 的运行环境提供的对象,主要指由浏览器提供的对象。比如 BOM DOM

自定义对象

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

创建自定义对象

//方式一
var obj = new Object(); //使用 new 关键字调用的函数,是构造函数
//方式二
var obj = {};

对象的属性

属性名

  • 对象的属性名不强制遵守标识符规范,可以使用任何名字,如 obj.var = "hello"
  • 如果需要使用特殊属性名,如 obj.123 = "hello",必须使用另一种赋值方式:对象["属性名"] = "属性值"。读取时也必须使用采用上述方式
  • 在 [] 中直接传递一个变量,变量值是多少就读取相应属性,更加灵活

属性值

  • JS 对象的属性值可以是任意的数据类型。也可以是一个对象

向对象中添加属性

  • 语法:对象.属性名 = 属性值 或 对象["属性名"] = 属性值
  • 对象的属性名没有任何要求,不需要遵守标识符的规范,但是在开发中,尽量按照标识符的要求去写。
  • 属性值也可以任意的数据类型。

读取对象中的属性

  • 语法:对象.属性名 或 对象["属性名"]
  • 如果读取一个对象中没有的属性,它不会报错,而是返回一个undefined

删除对象中的属性

  • 语法:delete 对象.属性名 或 delete 对象["属性名"]

使用in检查对象中是否含有指定属性

  • 语法:"属性名" in 对象
  • 如果在对象中含有该属性,则返回true,如果没有则返回false。

枚举对象中的属性

  • 语法:for(var 属性名 in 对象){ ... }
  • for...in语句的循环体会执行多次,对象中有几个属性就会执行几次,每次讲一个属性名赋值给我们定义的变量,我们可以通过它来获取对象中的属性

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

  • 基本数据类型:String Number Boolean Null Undefined
  • 引用数据类型:Object
  • JS 中的变量都是保存到栈内存中
    • 基本数据类型

      • 基本数据类型的值直接在栈内存中存储,变量是直接保存的它的值。
      • 变量与变量之间是互相独立的,修改一个变量不会影响其他的变量。
    • 引用数据类型
      • 对象是保存到堆内存中,每创建一个新的对象,就会在堆内存中开辟出一个新的空间
      • 引用数据类型的数据,变量是保存的对象的引用(内存地址)
      • 如果多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其他的变量。
    • 比较两个变量时,对于基本数据类型,比较的就是值,对于引用数据类型比较的是地址,地址相同才相同

使用对象字面量,在创建对象时直接向对象中添加属性

var obj = {
属性名:属性值,
属性名:属性值,
属性名:属性值,
属性名:属性值
}

Javascript 基础学习(六)js 的对象的更多相关文章

  1. JavaScript基础学习(六)—函数

    一.函数的定义 1.function语句形式 //1.function语句式 function test1(){ alert("I am test1"); } test1(); 2 ...

  2. js基础学习之-js包装对象

    var test = "test"; test.a = "hello"; console.log(test.a); //undifined 定义: 在JavaS ...

  3. js基础学习之-js全局对象

    声明的三种方式: 第一种: var test; //或var test = 5; 第二种: test = 5; 第三种: window.test; //或window.test = 5; //只是使用 ...

  4. JavaScript学习06 JS事件对象

    JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...

  5. JavaScript 基础学习(二)js 和 html 的结合方式

    第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...

  6. JavaScript 基础学习1-day14

    JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...

  7. 48.javascript基础学习

    javascript基础学习:   http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...

  8. JavaScript 基础 学习(三)

    JavaScript 基础 学习(三) 事件三要素 ​ 1.事件源: 绑定在谁身上的事件(和谁约定好) ​ 2.事件类型: 绑定一个什么事件 ​ 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...

  9. JavaScript 基础 学习 (二)

    JavaScript 基础 学习 节点属性 ​ 每一个节点都有自己的特点 ​ 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) ​ 语法:节点.nodeT ...

  10. JavaScript 基础 学习 (一)

    JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 ​ 比如:id,类名,标签名,选择器 的方式来获取元素 ​ 伪数组: ​ 长的和数组差不多,也是按照索引排 ...

随机推荐

  1. noip2017考前基础复习——数论数学

    ·最大公约数 gcd 辗转相除法  gcd(a,b)=gcd(b,a%b) int gcd(int x,int y){ ) return x; return gcd(y,x%y); } 效率O(log ...

  2. Ogre源码学习-Image和Texture

    以下文字来自源码注释: Image类:保存未压缩的图片数据,是唯一一个可以加载纹理的类.Image对象调用Codec对象来为图片数据解码. 通常,当在图片被加载前需要对它进行额外的处理,或者你想把它复 ...

  3. HGE引擎改进——2014/2/18 和 2014/2/27

    2014/2/18 更新 hgehelper库:增加hgeSkeleton类,该类用于播放骨骼动画 增加工具骨骼动画编辑器(AnimationEd),该工具用于骨骼动画的编辑 2014/2/27 更新 ...

  4. Qt下Armadillo矩阵函数库的添加

    其实本文严格说只能算VS2013添加Armadillo教程,因为为了省事,用的是VS2013编译器版本的Qt,Armadillo也直接用了自带例子中的blas_win64_MT.dll.blas_wi ...

  5. ASP.NET Core下Ocelot的简单使用

    一.创建demo项目 1.新建webapi项目,命名为“DemoProject”,去掉HTTPS勾选 using Microsoft.AspNetCore.Mvc; using System.Coll ...

  6. JS-09-数组

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 工具之sort

    转自:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参 ...

  8. 2018CCPC吉林赛区(重现赛)部分题解

    The Fool 题目链接 Problem Description The Fool is numbered 0 – the number of unlimited potential –and th ...

  9. Docker底层架构之控制组

    概述 控制组(cgroups)是 Linux 内核的一个特性,主要用来对共享资源进行隔离.限制.审计 等. 只有能控制分配到容器的资源,才能避免当多个容器同时运行时的对系统资源的竞争. 控制组技术最早 ...

  10. springcloud ActiveMQ设置多个并行消费者

    还是结合实际项目说把,最近在做跟保险公司和第三方借贷平台对接的项目: 其中需要第三方借贷平台借款并和保险挂对勾,也就是每次借钱的时候可以做一次保: 这里面正常情况下的逻辑场景: 借贷平台:借贷审核通过 ...