对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型。是一组数据和功能的集合。

创建对象实例

1.使用new操作符后跟Object构造函数

 var person = new Object();person.name = "Ricardo";person.age = 23;

2.使用对象字面量的方式(推荐)

 var person = {name:"Ricardo",age:23};

对象可以理解为是一组 “键值对”(key-value)的集合,是一种无序的复合数据集合。在上述代码中,大括号就定义了一个对象,它被赋值给变量 person ,所以变量 person 就指向一个对象。该对象内部包含两个键值对(又称为两个“属性”),第一个键值对是 name:“Ricardo” ,其中 name 是“键名”(属性名),字符串 Ricardo 是“键值”(属性值)。键名与键值之间用冒号分隔。第二个键值对是 age:23age 是键名, 23 是键值。两个键值对之间用逗号分隔。

 在使用对象字面量这种方式时,用逗号来分隔不同的属性,且最后一个属性后不能跟逗号。若在最后一个属性后添加逗号,会在IE7及更早版本和Opera中导致错误
2.1 属性名(键名)

属性名也可以使用字符串(属性名都是字符串,所以可省略引号)

 var person = {"name":"Ricardo","age":23,5:true};

这里的数值属性名会自动转换为字符串
如果属性名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。

 //正确写法var obj = {"1p":"ricardo","2 p":"lee","2+3":5};

访问对象

访问对象的属性,有两种方法,一种是点方法,还有一种是方括号表示法。

 console.log(person.name);//点方法console.log(person["name"]);//方括号表示法,属性名应加引号

使用方括号表示法,应将要访问的属性名以字符串的形式放在方括号中。

 person["first name"] = "Ricardo";

如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,则推荐使用方括号表示法。

对象的枚举

for in

想要遍历数组,可以使用for循环

var arr= [1, 2, 3, 4];
for (var i = 0; i < arr.length; i++) {console.log(arr[i]);
}


那么对象呢?对象没有length属性

var obj = {name: 'zhangsan',age: 18,sex: 'male'
}console.log(obj.length);//undefined

这时候就要用到for in

var obj = {name: 'zhangsan',age: 18,sex: 'male'
}for (var key in obj) {console.log(obj[key]);
}


for in语法

for (变量 in 对象/数组) {...
}

变量用来接收对象属性或数组的元素
为什么输出语句要使用方括号表示法?

var obj = {name: 'zhangsan',age: 18,sex: 'male'
}for (var key in obj) {console.log(obj.key);//undefined
}

因为点方法最终会转换为方括号法

obj.key ---> obj['key']

这样就会把key当做obj中的一个属性,可obj中并没有这个属性,所以会返回undefined。

var obj = {name: 'zhangsan',age: 18,sex: 'male'
}for (var key in obj) {console.log(typeof(key));//string
}

并且key变量为字符串,所以在用方括号访问时,不用加上""。

var obj = {name: 'zhangsan',age: 18,sex: 'male'
}for (var key in obj) {console.log(key+':'+obj[key]);
}

以上代码输出结果为
name:zhangsan
age:18
sex:male

参考资料
  1. 阮一峰JavaScript标准参考教程(alpha)-语法-对象
  2. 《JavaScript高级程序设计第三版》

JavaScript学习笔记|数据类型——Object类型、for in循环相关推荐

  1. javascript学习笔记 - 引用类型 Object

    引用类型是一种数据结构,也称作对象定义,类似于类的概念. 对象是引用类型的实例. javascript引用类型有:Object, Array, Date, RegExp, Function 使用new ...

  2. JavaScript学习笔记03-数组-Data对象-Math对象-包装类-字符串-正则

    目录 一.数组 索引 数组的特点 1.1.数组的创建 1.1.1.使用new关键字(构造函数) 1.1.2.使用字面量形式 1.1.3.创建数组的注意事项 1.2.数组的基本使用 1.2.1.存操作( ...

  3. JavaScript学习笔记:类型检测

    JavaScript学习笔记:类型检测 1.利用typeof检测数据类型 注意:type of null,返回的不是"null",而是"object".type ...

  4. JavaScript学习笔记(一)—— 数据类型

    一.基本数据类型: 1.js中基本数据类型:String.Boolean.Number.Null.undefined: 复合数据类型:object对象类型.Array数组类型 特殊对象:functio ...

  5. JavaScript 学习笔记(1)

    1.     何为 Jscript JScript 是一种解释型的.基于对象的脚本语言. 局限性: 1)        不能使用该语言来编写独立运行的应用程序 2)        没有对读写文件的内置 ...

  6. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. JavaScript 学习笔记(第三天)

    JavaScript 学习笔记(第三天) 一.数组 1.1.数组的基础 1.2.数据类型分类 1.3.创建数组 1.3.1.字面量创建一个数组 1.3.2.内置构造函数创建数组 1.4.数组的基本操作 ...

  8. JavaScript 学习笔记(二)

    JavaScript 学习笔记(二) 文章目录 JavaScript 学习笔记(二) 一 JSON 1. JSON 对象 什么是JSON对象 JSON对象与Javascript对象的区别 在JavaS ...

  9. JavaScript学习笔记(第二部分)总共四部分

    JavaScript学习笔记(第二部分)总共四部分 4 对象(Object) 字符串String.数值Number.布尔值Boolean.空值Null.未定义Undefined是基本的数据类型,这些数 ...

最新文章

  1. [转载]如何发送和接收 Windows Phone 的 Toast 通知
  2. c语言不用switch做计算器,超级新手,用switch写了个计算器程序,求指导
  3. dNet命令行编译命令CSC使用详细图解
  4. deepin linux深度ISO镜像下载地址
  5. 逆向了一下hh.exe
  6. Flex与ASP.NET通过Remoting方式交互说明文档
  7. 【微信小程序】组件间通信与事件-获取子组件的实例对象
  8. DATE_FORMAT、when case函数用法
  9. Flask程序的基本结构
  10. Linux BT下载(7)-种子解析模块设计与实现1
  11. Go手动安装pkg包初体验
  12. CSDN如何收藏别人的博客文章
  13. NR 5G 5G-GUTI解读
  14. 计算机参数含义,电脑内存条参数各有什么含义?
  15. NTKO OFFICE文档控件
  16. cuda 安装及卸载
  17. platform-tools
  18. 怎样用比较器实现信号的衰减和饱和_【白皮书】利用信号调理提高测量质量(中)...
  19. K8S部署ingress-nginx
  20. 南通大学计算机专业分数线2020,南通大学医学院2020年招生录取分数线

热门文章

  1. stata里reghdfe函数在不同固定效应设计下的观测值问题
  2. vue 传参获取数据
  3. 怎么在线给图片转换格式?分享一款图片转格式神器
  4. 摇摇招车CEO:本月北京打车App将共用同一运营后台
  5. 阅读笔记:双核心Opteron处理器
  6. 阅读Android源代码
  7. MySQL-LOCATE和FIND_IN_SET函数
  8. HTML5七夕情人节表白网页制作【JS烟花表白】HTML+CSS+JavaScript 烟花表白代码 html烟花告白源码
  9. PostgreSQL入门基本语法之DDL-(user、database、schema)
  10. windows注册表自定义添加右键菜单