JavaScript对象_动力节点Java学院整理


Posted in Javascript onJune 23, 2017

JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。

JavaScript的对象用于描述现实世界中的某个对象。例如,为了描述“小明”这个淘气的小朋友,我们可以用若干键值对来描述他:

var xiaoming = {
  name: '小明',
  birth: 1990,
  school: 'No.1 Middle School',
  height: 1.70,
  weight: 65,
  score: null
};

JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,,如果加了,有的浏览器(如低版本的IE)将报错。

上述对象申明了一个name属性,值是'小明',birth属性,值是1990,以及其他一些属性。最后,把这个对象赋值给变量xiaoming后,就可以通过变量xiaoming来获取小明的属性了:

xiaoming.name; // '小明'
xiaoming.birth; // 1990

访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用''括起来:

var xiaohong = {
  name: '小红',
  'middle-school': 'No.1 Middle School'
};

xiaohong的属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问:

xiaohong['middle-school']; // 'No.1 Middle School'
xiaohong['name']; // '小红'
xiaohong.name; // '小红'

也可以用xiaohong['name']来访问xiaohong的name属性,不过xiaohong.name的写法更简洁。我们在编写JavaScript代码的时候,属性名尽量使用标准的变量名,这样就可以直接通过object.prop的形式访问一个属性了。

实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。

如果访问一个不存在的属性会返回什么呢?JavaScript规定,访问不存在的属性不报错,而是返回undefined:

var xiaoming = {
  name: '小明'
};
xiaoming.age; // undefined

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

var xiaoming = {
  name: '小明'
};
xiaoming.age; // undefined
xiaoming.age = 18; // 新增一个age属性
xiaoming.age; // 18
delete xiaoming.age; // 删除age属性
xiaoming.age; // undefined
delete xiaoming['name']; // 删除name属性
xiaoming.name; // undefined
delete xiaoming.school; // 删除一个不存在的school属性也不会报错

如果我们要检测xiaoming是否拥有某一属性,可以用in操作符:

var xiaoming = {
  name: '小明',
  birth: 1990,
  school: 'No.1 Middle School',
  height: 1.70,
  weight: 65,
  score: null
};
'name' in xiaoming; // true
'grade' in xiaoming; // false

不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:

'toString' in xiaoming; // true

因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性。

要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:

var xiaoming = {
  name: '小明'
};
xiaoming.hasOwnProperty('name'); // true
xiaoming.hasOwnProperty('toString'); // false

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery的html(data)方法与<script>脚本块的解决方法
Mar 09 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
May 17 Javascript
angularjs项目的页面跳转如何实现(5种方法)
May 25 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
在vue中读取本地Json文件的方法
Sep 06 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
elementUI table表格动态合并的示例代码
May 15 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 Javascript
浅谈react路由传参的几种方式
Mar 23 Javascript
JavaScript订单操作小程序完整版
Jun 23 #Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 #Javascript
JavaScript实现简单的树形菜单效果
Jun 23 #Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 #Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 #jQuery
js实现城市级联菜单的2种方法
Jun 23 #Javascript
JS使用正则表达式验证身份证号码
Jun 23 #Javascript
You might like
一步一步学习PHP(8) php 数组
2010/03/05 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
vue实现登陆登出的实现示例
2017/09/15 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
为什么称python为胶水语言
2020/06/16 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
中学劳技课教师的自我评价
2014/02/05 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
迎新晚会主持词
2014/03/24 职场文书
詹天佑教学反思
2014/04/30 职场文书
公务员考察材料
2014/12/23 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
2015年教师节广播稿
2015/08/19 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android