javascript基础知识(6) 对象
对象
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
转载于:https://www.cnblogs.com/nature-tao/p/9473707.html
javascript基础知识(6) 对象相关推荐
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- JavaScript 基础知识 - DOM篇(二)
7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...
- javaweb(02) JavaScript基础知识
javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...
- Javascript基础知识之四(常用数组方法)
一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...
- JavaScript基础知识与脚本语言总结
1 Aptana插件安装 1.Aptana插件安装 <1>Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE. <2>它的特点包括: J ...
- JavaScript 基础知识 - 入门篇(二)
11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余: 函数可以封装一段重复的javascript代码, ...
- JavaScript 基础知识
JavaScript 基础知识 文章目录 JavaScript 基础知识 @[toc] 一.JS的基本语法与结构 1.1 JavaScript 用法 1.2 JavaScript 输出 1.3 Jav ...
- 网页游戏开发基础——JavaScript基础知识
对于初学编程的朋友来说,这篇文章有点长,而且会有点难懂.但是请不要放弃,我尽量以通俗的语言解释相关的编程概念,这里只讲解编写一个游戏需要的相关编程概念(如需要会在后面的文章中随时补充相关概念),对其余 ...
- 【JavaScript详解】一文掌握JavaScript基础知识(上)
JavaScript基础 前言 一.什么是JavaScript 1.JavaScript概述 2.javaScript有什么作用 二.JavaScript快速入门 1.引入JavaScript 2.基 ...
最新文章
- 使用Clonezilla克隆系统
- python mac地址转换_Python MAC地址 获取,过滤,转换 Python MYSQL 数据获取,比较
- python3上传文件_Python3学习笔记(十八):文件上传和下载
- 谷歌地图将很快显示电动汽车充电站
- 拆包--缓冲区查找包头及包尾偏移
- supervisor linux下进程管理工具
- 需要额外端口信息_使用Python进行TCP端口扫描
- 7-16 装箱问题 (20 分)
- python合并单元格居中_Python实现Excel自动分组合并单元格
- simscape做一个简单倒立摆
- u盘计算机软件,USBoot(U盘启动盘制作工具)
- PCB设计流程一原理图
- Lee滤波和Refine-Lee滤波
- Python语言:散修笔记
- MFC无边框窗体设置窗口圆角,并且绘制边框
- php面试你离职的原因,如何在面试中描述你的离职原因?
- 【C语言】exit(0)与exit(1)有什么区别
- 知识图谱预训练数据转化(附源码)
- gifcam使用缩小内存_GifCam使用方法
- 克里希纳穆提的作品!
热门文章
- excel设置单元格整数后还是有小数点_一招教你统一解决excel单元格的单位问题!...
- 华为根本没有鸿蒙系统,【图片】你看不明白的鸿蒙系统,才是华为缔造未来的“伟大”!华为并没有把系统划分为手机操作系统,我们就能知道华为想的并不是那么简单【手机吧】_百度贴吧...
- 从高频问题透视核心原理(转)
- Oracle 常用系统数据查询SQL(转)
- 最大尺寸分辨率_LG UltraFine 4K显示器重上架苹果商店:尺寸变大,但降为UHD
- c# 链接mongDB集群实战开发3
- 机器学习_一条会说666的咸鱼
- python response重头开始_用 Python 抓取公号文章保存成 PDF
- 《R Cookbook》中文笔记
- java 声明数组_Java中的数组简介