全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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小时内与您取得联系。