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 相关文章推荐
escape、encodeURI、encodeURIComponent等方法的区别比较
Dec 27 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
JavaScript 表单处理实现代码
Apr 13 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
node网页分段渲染详解
Sep 05 Javascript
jQuery简单实现列表隐藏和显示效果示例
Sep 12 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
JS检索下拉列表框中被选项目的索引号(selectedIndex)
Dec 17 Javascript
JS实现“全选”和"全不选"功能代码实例
Feb 06 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
vue3.0中使用element的完整步骤
Mar 04 Vue.js
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生成年月日下载列表的方法
2015/04/24 PHP
php实现网站留言板功能
2015/11/04 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
js基于canvas实现时钟组件
2021/02/07 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python程序封装为win32服务的方法
2021/03/07 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
运动会入场词60字
2014/02/15 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
Python数据可视化之Seaborn的安装及使用
2022/04/19 Python