1、什么叫JavaScript对象?

  定义:名值对的集合。简单的讲就是容纳属性值和属性值的容器,这些属性可以是无序的,基本上JavaScript中所有的事物都可以看成对象。

  拓展:我们经常说,数组也是对象,那么,我们从对象定义中名值对的角度看,数组与普通的对象相比,他的名值对是由顺序的而已,即每一个arry[i]对应着固定的数值,所以,可以说,数组是特殊的对象,特殊就特殊在他的名值对是有序的,现在再看数组是不是简单多了呢?

  

2、创建对象 的四种方法:

  分别为:

  ①对象字面量法;②new关键字创建法;③构造函数法;④ES5提供的Object.creat()方法;

  ①对象字面量法:

  创建方法:

  var  school={name:'cumt',

        'first-road':'大学路',

        Iscollege:true,

        students:50000,

        };

  需要注意的几个点:

  1、属性名如果是以数字开头,则属性名必须加上单引号或者双引号;如果属性名中包含JavaScript的保留字或者非法字符(-等字符)必须要加单引号或者双引号。其他情况可以不必加单引号或者双引号。

  2、属性值如果是字符串,则属性值必加单引号或者双引号;如果属性值是数字、布尔值、undefined、NaN或者null则可以不用加引号。

  3、属性之间分隔用逗号分开,而不是用分号(切记)。

  ②通过var关键字和new关键字创建对象:

  创建方法:

  var person=new Object(){name:'josn',

          sex:male,

          'girl-friend':lily,

          hometown:'江苏',

        };

  ③构造函数法:

  var preson=function(){name:'AJax',

            valuble:true,

            times:'often',

        };

说明:

1、前面说到数组是特殊的对象,那么在这儿,聪明的大家肯定早就看出来了,函数它也是对象,其实仔细想想:函数是一种对象,而我们却可以利用函数来定义一个对象,乍一听,咋感觉这么像数学里面的充分必要的关系,但实际上用这种关系解释他们是解释不通的也是没必要的,只要理解:函数是一种对象,通过函数可以构造对象,这就够了。关于函数的总结稍后会在下一贴随笔中细说。

2、既然第一条说到了JavaScript的对象,咱们就来理一理JavaScript中到底有多少内置对象(面试的时候在这个问题上栽过一回,当时就问蒙了,只零零散散的回答了一部分):JavaScript中的内置对象有17个之多,常用的是Array对象、Date对象、Regexp(正则表达式)对象、String对象、Global对象 ,Object对象,Arguments对象,Boolean对象,Error对象,Function对象,Math对象,Number对象等,具体的内置对象使用方法请参照:https://www.cnblogs.com/Arther-J/p/5388633.html

  ④通过Object.create()方法创建对象:

  在ES5中,提供了一种创建对象的新方法:通过Object.create()创建对象,使用方法如下:

  var dream=Object.create({owner:'mine',

                  distance:'step',

                 method:'天助自助者',

             });

3、对象属性的访问、添加、修改、删除、遍历操作方法

  通例:

  var  obj={name:'攻城狮',

      age:18,

      sex:'male',

      hobby:'fishing',

    };

  ①对象属性的访问:

  方法为:访问对象的属性时,方法有两种:对象名.属性名    或者   对象名.['属性名']    无论是用  点   的形式还是方括号的形式都是可以的,至于这俩有啥区别,待会儿咱在慢慢扯。

例:我要得到obj这个对象中的age属性的属性值,我可以这样写:console.log(obj.age);

                   当然我也可以这样写:console.log(obj['age']);

  得到的结果是一样的,都是   18.

  ②添加对象的属性:

   例:我们想要给上面的obj对象中添加一个sayhi的属性,我们可以这样做:

    obj.sayhi='hello';

    访问:console.log(obj.sayhi);       结果为:hello

  ③修改对象的属性值:

  修改对象属性值其实就是对对象属性值进行新的赋值,如果对象中这个属性原来就存在,我们称之为修改属性值,那么如果这个属性原来在对象中压根就没有,那么这就是上面刚刚说的添加对象的属性。

  例如:我们现在想把obj的sex属性名的值换成female,我们可以这么写:

  obj.sex='female';

  相当于重新给sex属性名赋了一个值

  这个时候我们再访问:console.log(obj.sex);就会发现结果变成了  female

  ④删除对象的属性:

  我们如果想要删除对象中原来存在的某个属性,JavaScript提供的方法是delete

  例如,我们现在想把上面obj的hobby的属性删掉

  在删掉之前呢,我们先来访问一下obj的属性,看看他的结果,方便和删除后做对比

  console.log(obj.hobby);    结果正如大家所预料的,是  fishing

  那,我们来删除hobby属性,方法是:

      delete  obj.hobby;

  这会儿咱再来访问:

    console.log(obj.hobby);   就会发现结果变成了  undefined,我们删除了hobby属性,访问了一个不存在的属性,结果自然是undefined

  ⑤遍历对象的属性:

  遍历 JavaScript 对象中的属性没有其他语言那么简单,因为两个因素会影响属性的遍历:对象属性的属性描述符 (property descriptor) 的 [[Enumerable]] 特性为 true (可枚举)才能被 for-in 访问;如果在对象本身没有找到属性,接下来会在原型链上查找,访问属性时会沿着整个原型链从下到上查找属性。所以说遍历属性时,要考虑这两个因素。

  下面我们就来试试,使用for..in取出obj对象中的全部自有属性和属性值:

  var x;

  for(x in obj){

  document.write(i+':'+house[i]+';<br/>');

  };

结果为:

name:攻城狮;
age:18;
sex:female;
sayhi:hello;

写在末尾:

本篇关于对象的知识总结都是些比较基础的东西,适合于初学者,希望各位前辈、高手、老师指点分享经验和看法,也欢迎在评论区交流看法。

JavaScript对象基础知识总结的更多相关文章

  1. JavaScript对象基础知识

    1.对象所包含的元素一组包含数据的属性.如人的名字.书的价格和手机型号等.允许对属性中所包含的数据进行操作的方法. 2.引用对象的途径一个对象真正地被使用,可以采用以下几种方式.引用Javascrip ...

  2. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  3. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  4. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

  5. JavaScript 之基础知识

    JavaScript 基础知识 JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaS ...

  6. OpenGL ES 3.0 帧缓冲区对象基础知识

    最近在帧缓冲区对象这里卡了一下,不过前面已经了解了相关的OpenGL ES的知识,现在再去了解就感觉轻松多了.现在就进行总结. 基础知识 我们知道,在应用程序调用任何的OpenGL ES命令之前,需要 ...

  7. JavaScript笔记——基础知识(一)

    <Script>标签属性 <script>xxx</script>这组标签,是用于在 html 页面中插入 js 的主要方法.它主要有以下 几个属性: charse ...

  8. javascript 正则表达式基础知识汇总

    正则表达式:对字符串中的信息实现查找.替换和提取操作.(不支持注释和空白,必须写在一行内)正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)例如:var pattern = /s$/;     ...

  9. JavaScript事件基础知识总结【思维导图】

    另外附上来自Nicholas C.Zakas<JavaScript高级程序设计 第3版>中的跨浏览器兼容EventUtil对象. var EventUtil = { //注册事件 addH ...

随机推荐

  1. 【原创】cython and python for kenlm

    未经允许不可转载 Kenlm相关知识 Kenlm下载地址 kenlm中文版本训练语言模型 如何使用kenlm训练出来的模型C++版本 关于Kenlm模块的使用及C++源码说明 加载Kenlm模块命令 ...

  2. Python 2.6 安装wxPython后提示"64.....32"错误解决办法

    ImportError: /usr/local/lib/wxPython-unicode-2.8.10.1/lib/python2.6/site-packages/wx-2.8-mac-unicode ...

  3. 编写高质量代码改善C#程序的157个建议——建议71:区分异步和多线程应用场景

    建议71:区分异步和多线程应用场景 初学者有时候会将异步和多线程混为一谈.如果对它们之间的区别不是很清楚,很容易写出下面这样的代码: private void buttonGetPage_Click( ...

  4. 设计模式3---工厂模式(Factory Pattern简单工厂、工厂方法、抽象工厂)

    工厂模式:主要用来实例化有共同接口的类,工厂模式可以动态决定应该实例化那一个类.工厂模式的形态工厂模式主要用一下几种形态:1:简单工厂(Simple Factory).2:工厂方法(Factory M ...

  5. Gym - 101498G(Super Subarray )

    In this problem, subarray is defined as non-empty sequence of consecutive elements. We define a suba ...

  6. logback 配置详解——logger、root

    目录 1.根节点包含的属性 2.根节点的子节点 2.1.设置上下文名称: 2.2.设置loger.root 正文 回到顶部 1.根节点<configuration>包含的属性 scan: ...

  7. 文字编码ASCII,GB2312,GBK,GB18030,UNICODE,UCS,UTF的解析

    众所周知,一个文字从输入到显示到存储是有一个固定过程的,其过程为:输入码(根据输入法不同而不同)→机内码(根据语言环境不同而不同,不同的系统语言编码也不一样)→字型码(根据不同的字体而不同)→存储码( ...

  8. COLLATE 函数

    指定SQL server的排序规则Chinese_PRC指的是中国大陆地区,如果是台湾地区则为Chinese_TaiwanCI指定不区分大小写,如果要在查询时区分输入的大小写则改为CSAS指定区分重音 ...

  9. Linq集合操作之Intersect,Except,Union源码分析

    Linq集合操作之Intersect,Except,Union源码分析 linq的集合运算 常见的集合运算有哪些? 这三个扩展方法在我们实际使用中用的还是非常多的,而且这里还涉及到了“复杂度” 无算法 ...

  10. TSQL--HASH JOIN

    算法: 将其中一张表的连接列做hash,然后遍历另外一张表,对遍历出的每一行到hash表中匹配查找 要求:hash表不要求表排序或有索引