javaScript数组的三种属性—数组索引、数组内置属性、数组自定义属性
JS数组也是一种对象。
我们用JavaScript处理的所有东西,都可以视为是一种对象。
JavaScript中有两种数据类型,基本类型数对象类型,但是基本类型基本都是包括在对象类型之中的。
数组、函数、Date在JavaScript中都是预定义的对象,它们内部都包含了方法、属性和各自的标准化句法。
JavaScript数组有以下三种不同的属性:
1 数组的索引也是其属性
2 内置属性
3 你可以自己添加自定义属性
前两种属性是大家比较熟知的,你可能每天都在使用,但是我还是想在这里简单的多说两句,然后再来谈谈如何给数组添加自定义属性。
将索引作为属性
JavaScript数组可以使用方括号句法,例如var ary = [“orange”,"apple","lychee"];。
数组元素的索引基本上也是一种属性,而其属性的名称永远都是非负整数。
数组的索引元素对类似一个对象的关键值对。索引是数组对象的独特特性,与其他内置属性不同,它们可以单独通过方括号进行配置,例如 ary[3] = “peach”;。
内置属性
数组拥有内置属性,例如array.length。这个长度属性包含了一个整数值,用来表示数组的长度。
一般情况下,内置属性经常可以在数组等预先定义的JavaScript对象中找到。内置属性与内置方法联合在一起,它们可以对普通对象进行自定义,让对象满足不同的需求。
在访问内置属性的时候,你可以使用两种句法:object.key或是object[“key”]。也就是说,在获取数组长度的时候,你可以写成ary[“length"]。
为数组对象创建自定义属性
JS数组的自定义属性可枚举,但是不算入数组的length
它可以被for……in等循环所拣选
数组是一种预定义对象,它在不同的索引中储存了不同的种类的值。
通常情况下,我们没有给数组添加自定义属性的需要;也是出于这个原因,我们在刚刚学习JavaScript的时候,没有人告诉我们可以给数组添加属性。事实上,如果你想要向对待一般对象那样,给数组添加关键值对,你也可以使用一般的对象来达到目的。但是,这并不是说完全没有特殊情况,在某些情况下,你可以利用数组也是一种对象的事实,给它添加一个或多个自定义属性。
var ary = ["orange","apple","lychee"];
ary.itemClass = "fruits";
console.log(ary); // ["orange", "apple", "lychee", itemClass: "fruits"]
for(var i = 0 ;i<ary.length;i++){
console.log(ary[i]);
}
//依次打印 orange apple lychee
for(var i in ary){
console.log(ary[i]);
}
//依次打印 orange apple lychee fruits
javaScript数组的三种属性—数组索引、数组内置属性、数组自定义属性的更多相关文章
- Ant 脚本打印系统属性变量、ant内置属性
Ant 脚本打印系统属性变量.ant内置属性 作用 编写ant脚本的时候,经常会引用到系统属性,本脚本用于打印系统常用属性(System.getProperties)与环境变量(Environment ...
- 第三十五篇 类的内置属性(attr属性),包装和授权,__getattr__
双下划线开头的attr方法,都是类内置的方法. 一. 如果没有在类里定义这三个方法,调用的时候就调用类内置的默认的方法 class Too: pass # 类没有定义这三个属性,就用系统默认的方法 t ...
- Maven的内置属性
Maven共有6类属性: ①内置属性(Maven预定义属性,用户可以直接使用) ${basedir}表示项目的根路径,即包含pom.xml文件的目录 ${version}表示项目版本 ${projec ...
- poj 3486 A Simple Problem with Integers(树状数组第三种模板改段求段)
/* 树状数组第三种模板(改段求段)不解释! 不明白的点这里:here! */ #include<iostream> #include<cstring> #include< ...
- 数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结
1. 数组的三种声明方式 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] test ...
- PHP数组输出三种形式 PHP打印数组
PHP数组输出三种形式 PHP打印数组 $bbbb=array("11"=>"aaa","22"=>"bbb&qu ...
- 数组的三种方式总结 多维数组的遍历 Arrays类的常用方法总结
一.数组的三种声明方式总结 public class WhatEver { public static void main(String[] args) { //第一种 例: String[] tes ...
- Javascript 创建对象的三种方法及比较【转载+整理】
https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain 本文内容 引 ...
- JavaScript中的三种弹出对话框
学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性 ...
随机推荐
- html5 manifest 离线缓存知识点
1.最大缓存容量为 5M. 2.manifest文件需要配置正确的MIME-type,即“text/cache-manifest”,这个是在web服务器上进行配置. ②编写.manifest文件,文件 ...
- Python入门之面向对象编程(一)面向对象概念及优点
概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...
- 20145313exp9
问题回答 SQL注入攻击原理,如何防御 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序 ...
- 20145333茹翔 Exp5 MSF基础应用
20145333茹翔 Exp5 MSF基础应用 实验内容 掌握metasploit的基本应用方式,掌握常用的三种攻击方式的思路. 一个主动攻击,如ms08_067; 一个针对浏览器的攻击,如ms11_ ...
- Android 实践项目开发二
在地图开发中项目中,我这周主要完成的任务是和遇到的问题是以下几个方面. 1.在本次的项目中主要是利用百度地图的.jar包实现地图的定位与搜索功能,需要在百度地图开发中心网站取得 密钥,并下载相关.ja ...
- C# 将文件转换为 Stream
public Stream FileToStream(string fileName) { // 打开文件 FileStream fileStream = new FileStream(fileNam ...
- C# 图片和64位编码的转换
/* 将图片转换为64位编码 */ //找到文件夹 System.IO.DirectoryInfo dd = new System.IO.DirectoryInfo("C://qq" ...
- 小Z的袜子(莫队分块)题解
小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...
- 【域名配置】Tomcat外网发布域名配置
1.修改端口 首先,访问服务器时默认的是80端口,tomcat中的server.xml文件直接修改,这里要说明的是如果一个服务器上有多个tomcat的话,修改端口需要注意的是要修改 <Serve ...
- POJ 2117 Electricity(割点求连通分量)
http://poj.org/problem?id=2117 题意:求删除图中任意一个顶点后的最大连通分量数. 思路: 求出每个割点对应的连通分量数,注意这道题目中图可能是不连通的. 这道题目我wa了 ...