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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 对象
# js 将json字符串转换为json对象的方法解析
# js delete 用法(删除对象属性及变量)
# JS对象与JSON格式数据相互转换
# JS 创建对象(常见的几种方法)
# JavaScript中json对象和string对象之间相互转化
# JavaScript 三种创建对象的方法
# js将类数组对象转换成数组对象
# 用原生JS获取CLASS对象(很简单实用)
# js中判断对象是否为空的三种实现方法
# js用Date对象的setDate()函数对日期进行加减操作
# 小明
# 可以用
# 键值
# 不存在
# 报错
# 小红
# 就可以
# 都是
# 是一个
# 变量名
# 也不
# 是一种
# 你可以
# 来访问
# 会在
# 要在
# 但这
# 或删除
# 什么呢
# 不需
相关文章:
如何快速生成高效建站系统源代码?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何在香港服务器上快速搭建免备案网站?
如何通过服务器快速搭建网站?完整步骤解析
如何快速搭建高效WAP手机网站?
如何挑选优质建站一级代理提升网站排名?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
html制作网站的步骤有哪些,iapp如何添加网页?
深圳网站制作平台,深圳市做网站好的公司有哪些?
相册网站制作软件,图片上的网址怎么复制?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何快速搭建支持数据库操作的智能建站平台?
建站主机SSH密钥生成步骤及常见问题解答?
如何通过VPS建站实现广告与增值服务盈利?
建站主机选哪家性价比最高?
公众号网站制作网页,微信公众号怎么制作?
如何通过建站之星自助学习解决操作问题?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
php json中文编码为null的解决办法
网站制作新手教程,新手建设一个网站需要注意些什么?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
企业微网站怎么做,公司网站和公众号有什么区别?
c# await 一个已经完成的Task会发生什么
如何在搬瓦工VPS快速搭建网站?
如何快速搭建高效香港服务器网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何在阿里云虚拟服务器快速搭建网站?
浅析上传头像示例及其注意事项
建站之星收费标准详解:套餐费用及年费价格表一览
nginx修改上传文件大小限制的方法
活动邀请函制作网站有哪些,活动邀请函文案?
建站之星如何防范黑客攻击与数据泄露?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何在IIS中新建站点并解决端口绑定冲突?
C++时间戳转换成日期时间的步骤和示例代码
如何破解联通资金短缺导致的基站建设难题?
全景视频制作网站有哪些,全景图怎么做成网页?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
如何在企业微信快速生成手机电脑官网?
建站之星如何助力网站排名飙升?揭秘高效技巧
如何在阿里云虚拟主机上快速搭建个人网站?
香港服务器租用费用高吗?如何避免常见误区?
如何用PHP工具快速搭建高效网站?
如何选择服务器才能高效搭建专属网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何选择PHP开源工具快速搭建网站?
内部网站制作流程,如何建立公司内部网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。