▓▓▓▓▓▓ 大致介绍

  JavaScript的简单数据类型包括:Undefined、Null、Boolean、Number、String。JavaScript中这五种基本数据类型不是对象,其他所有值都是对象。其中还有一些对象子类型,通常被称为内置对象(引用类型)

    1、Object

    2、Array

    3、Date

    4、RegExp

    5、Function

    6、Boolean

    7、Number

    8、String

▓▓▓▓▓▓ 创建对象的三种方法

  创建对象有三种方法:

    1、对象字面量,即用{}生成,一个对象字面量就是包围在一对花括号中的零个或多个“名/值”对

    2、构造函数,利用Object()构造函数生成

    3、Object().create方法生成

    注意:推荐第一种写法,第三种方法多用在继承的场合

  1. var myobj = {
  2. key : value;
  3. }
  4.  
  5. var myobj = new Object()
  6. myobj.key = value;
  7.  
  8. var myobj = Object.create(Object.prototype);
  9. myobj.key = value;

▓▓▓▓▓▓ 引用

  对象通过引用来传递,它们永远不会被复制。简单来说就是多个变量指向同一个对象,那么他们都是这个对象的引用,多个变量它们都指向同一个内存地址,如果通过一个变量修改了指向的对象,那么所有指向这个对象的变量都会发生改变

  1. var o = {
  2. name : 'laowang'
  3. };
  4.  
  5. var b = o;
  6. b.name = 'liu';
  7. console.log(o.name); //liu

▓▓▓▓▓▓ 属性操作

  读取属性

  读取对象的属性有两种方法,一种是用点运算符,另一种是用方括号运算符

  1. var o = {
  2. name : 'laowang'
  3. };
  4.  
  5. o.name; //'laowang'
  6. o['name']; //'laowang'

  

  注意:点操作符要求属性名满足标示符的命名规范,而方括号运算符的方式可以接受任何字符串作为属性名

  例如:

  1. var o = {
  2. name : 'laowang',
  3. 'super-f' : 2
  4. };
  5.  
  6. console.log(o.super-f); //报错
  7. console.log(o['super-f']); //

  可以在方括号中括住一个字符串表达式的方式来访问属性

  1. var o = {
  2. name1 : 'laowang',
  3. name2 : 'liaomou',
  4. name3 : 'PDD'
  5. };
  6.  
  7. for(var i=1;i<4;i++){
  8. console.log(o['name'+i]);//laowang liaomou PDD
  9. };

  在对象中,属性名永远都是字符串,如果你使用String以外的其他值作为属性名,那他首先会被转换为一个字符串。即使是数字也不例外

  1. var myObject = {};
  2.  
  3. myObject[true] = 'foo';
  4. myObject[2] = 't';
  5.  
  6. myObject['true']; //"foo"
  7. myObject['2']; //"t"

  

  写入属性

  可以用点运算符和方括号运算符写入属性

  1. var myObject = {
  2. name : 'laowang'
  3. };
  4.  
  5. //两种方法的效果是一样的
  6.  
  7. var myObject = {};
  8. myObject.name = 'laowang';
  9. myObject[name] = 'laowang';

  

  

  查看属性

  可以使用Object.keys()方法

  1. var myObject = {
  2. name : 'laowang',
  3. address : '西青区'
  4. };
  5.  
  6. console.log(Object.keys(myObject)); //["name", "address"]

  删除属性

  删除属性可以用delete运算符,它不会触及原型链中的任何对象,删除对象的属性可能会让来自原型链中的属性透现出来

  1. var myObject = {
  2. name : 'laowang',
  3. address : 'xi'
  4. };
  5.  
  6. var anotherObject = Object.create(myObject);
  7. anotherObject.name = 'xiaoma';
  8. console.log(anotherObject.name);
  9.  
  10. delete anotherObject.name;
  11. console.log(anotherObject.name); //laowang 删除了自己本身的属性,透现出来了原型的属性
  12.  
  13. delete anotherObject.address;
  14. console.log(anotherObject.address); //xi 不会删除原型中的属性

  检测属性是否存在

  我们要检测一个属性是否在对象中,可以使用in操作符

  1. var myObject = {
  2. name : 'laowang',
  3. address : 'xi'
  4. };
  5.  
  6. console.log('name' in myObject); //true
  7. console.log('sex'in myObject); //false

  注意:in操作符会检查属性是否在对象及原型链中,如果要检测一个属性是否在对象中,不涉及原型链,可以使用hasOwnProperty()

  1. var myObject = {
  2. name : 'laowang',
  3. address : 'xi'
  4. };
  5.  
  6. var anotherObject = Object.create(myObject);
  7.  
  8. console.log('name' in anotherObject); //true
  9. console.log(anotherObject.hasOwnProperty('name')); //false

  遍历属性

  有时需要遍历一个对象的所有属性,可以使用for..in语句

  1. var myObject = {
  2. name : 'laowang',
  3. address : 'xi',
  4. sex : 'man'
  5. };
  6.  
  7. for(var i in myObject){
  8. console.log(myObject[i]); //laowang xi man
  9. };

  注意:for..in语句会遍历对象的可枚举属性,包括原型链

  例如:

  1. var myObject = {
  2. name : 'laowang',
  3. address : 'xi',
  4. sex : 'man'
  5. };
  6.  
  7. //让myObject的name属性变得不可枚举
  8. Object.defineProperty(
  9. myObject,
  10. 'name',
  11. {enumerable:false}
  12. );
  13.  
  14. for(var i in myObject){
  15. console.log(myObject[i]); //xi man
  16. };

  如果想要过滤掉那些你不想要的值,最为常用的过滤器是hasOwnProperty方法,以及使用typeof来排除函数

 

参考资料:

      阮一峰JavaScript标准参考教程(alpha)-语法-对象

      JavaScript语言精粹第三章

      你不知道的JavaScript(上卷)第三章

      JavaScript高级程序设计(第三版)第五章 Object类型

JavaScript内置对象-Object的更多相关文章

  1. javascript 内置对象及常见API

    javascript 内置对象及常见API 2012-09-02 15:17 571人阅读 评论(0) 收藏 举报 javascript正则表达式文档浏览器urlstring Javascript内置 ...

  2. JavaScript高级:JavaScript面向对象,JavaScript内置对象,JavaScript BOM,JavaScript封装

    知识点梳理 课堂讲义 1.JavaScript面向对象 1.1.面向对象介绍 在 Java 中我们学习过面向对象,核心思想是万物皆对象. 在 JavaScript 中同样也有面向对象.思想类似. 1. ...

  3. document和javaScript内置对象

    1.Document 属性: referrer //返回载入当前文档的URL URL //返回当前文档的URL 方法: getElementById(); //根据id获取html元素对象 getEl ...

  4. JavaScript进阶 - 第7章 JavaScript内置对象

    第7章 JavaScript内置对象 7-1 什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的, ...

  5. JavaScript内置对象与原型继承

    (一)   理解JavaScript类定义 1>关于内置对象理解 console.log(Date.prototype.__proto__===Object.prototype    //tru ...

  6. JavaScript内置对象与原生对象【转】

    原文:https://segmentfault.com/a/1190000002634958 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化 ...

  7. 第五天:内置对象(7.Javascript内置对象)

    1)中所术是内置对象,2)中为自定义对象 代码说明如下 2.1.1 定义并创建对象实例方式1,代码如下: <!DOCTYPE html><html lang="en&quo ...

  8. Javascript 笔记与总结(2-4)Javascript 内置对象

    ① String 字符串对象 fromCharCode() 静态方法, 用作为参数而传递的字符代码创建一个新的字符串. length 字符串的长度. charAt() 抽取字符串中指定位置的字符. c ...

  9. javascript 内置对象 第17节

    <html> <head> <title>内置对象</title> </head> <body> <div>内置对象 ...

随机推荐

  1. javap -s 查看java方法签名

    工程先用eclipse生成class目录,转到class目录下执行: javap -s com.example.hellojni.MainActivity Compiled from "Ma ...

  2. eclipse 如何debug jdk源码(转)

    转:http://blog.csdn.net/cherrycheng_/article/details/51004386 原英文地址:http://stackoverflow.com/question ...

  3. BZOJ1419: Red is good

    1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 639  Solved: 247[Submit][Status][Di ...

  4. HDU 2830:Matrix Swapping II(思维)

    http://acm.hdu.edu.cn/showproblem.php?pid=2830 题意:-- 思路:对于每一列,它是固定的,用dp[][]处理出连续的长度.例如: 假设我们扫第四列的时候, ...

  5. CreateForm(

    /// <summary> /// 打开新的子窗体 /// </summary> /// <param name="strName">窗体的类名 ...

  6. iOS 自动布局过程

    自动布局将视图显示在屏幕上的步骤: 更新约束,它会从子视图传递到父视图,设置布局信息:约束更新时自动触发setNeedsUpdateConstraints:updateConstraints可以增加本 ...

  7. 位运算,算术、逻辑运算详解-java篇

    /** * 功能: * 位运算符,原码.反码.补码规则: * 1.二进制的最高位是符号位:0表示正数,1表示负数 * 2.正数的原码.反码.补码都一样 * 3.负数的反码=它的原码符号位不变,其他位取 ...

  8. Servlet 应用程序事件、监听器

    Web容器管理Servlet/JSP相关的生命周期,若对HttpServletRequest对象.HttpSession对象.ServletContxt对象在生成.销毁或相关属性设置发生的时机点有兴趣 ...

  9. 自用LogSystem入库分享

    .mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...

  10. eclipse中的Java项目导出成为一个可以直接双击运行的jar文件

    1. 选择要到处JAR文件的工程,右键选择“Export” 2. 选择“Java-->Runnable JAR file”,点击“Next”: 3. 在“Launch configuration ...