在编程语言中,数据集合表示一类数据的总和,集合即时一种数据存储结构也是数据组织结构,更是一种数据处理结构,数据集合有多种类型,如下:
数组Array:固定大小的有序集合
数组列表ArrayList:对象的动态数组类型
列表List:可通过索引访问的对象的强类型列表
字典Dictionary:表示键和值的集合
有序列表SortedList:与哈希表类似
哈希表Hashtable:名/值对,类似字典,比数组更强大
栈Stack:后进先出栈集合
队列Queue:先进先出栈集合
1.Array数组:有序的数据集合--元素Element+下标Index---已编码的值的集合类型
var a=[//数组
1,//该值隐藏编码为0
true//该值隐藏编码为1
]
数组的操作方法:
检索:使用for/in循环 for(var i in arr){ console.log(arr[i])} 2.for (var i,i es5使用forEach() every() some() map() filter() 添删元素: 末尾添删:push() pop() 首部添删:unshift() shift() 数组连接:concat() 插入删除替换数组元素:splice(startIndex,number,insplace) 截取数组:slice() 数组排序:升序--sort() 翻转-- reverse() 数组转字符串:toString() toLocaleString() join() 字符串使用方法: 查找字符串:charAt(index) charCodeAt(index) indexOf(index) lastIndexOf(index) 正则匹配字符创:var s="http://www.baidu.com" s. search("//")-->5 s. match(/h/g)-->[h] 截取字符串:slice() substr() substring() 编辑字符串:replace() toLocaleLowerCase() toLocaleUpperCase() toLowerCase()toUpperCase() 替换子字符串:s.replace(/http/,"https")或s.replace("http","https") var s='script language="javascript" type="text/javascript"' var f=function($1){ return $1.substring(0,1).toUpperCase()+$1substring(1)} var a=s.replace(/(\b\w+\b)/g,f) ---高级用法使用函数 console.log(a)-->'Script Language="Javascript" Type="Text/Javascript"' 字符串装数组:s.split() javascript任何对象都支持toString(),下面重写一个toString() String.prototype.toString()=function(color){ var color=color||"red" return ''+this.valueOf()+'' } s.toString("blue") -->显示蓝色字符串 2.Object对象:无序的数据结合----已命名的的值的集合类型 var o={//对象 x:1, //该值的命名为x y:true,//该值的命名为y } 对象的分类: 原生对象:Object Function Array String Boolean Number Date RegExp Math Error EvalError RangeError ReferenceError SyntaxError TypeError URLError 宿主对象:非javasript定义对象,Window Document History Location Screen Navigator Body Form Event.. 对象的常见用法:创建 设置 查找 删除 检测 枚举 对象的基本操作:创建对象 引用对象 销毁对象 创建对象: 通过原生对象创建: var o=new Object() var o=new array() 自定义创建: var o=new MyClass() ---使用new的后面是个构造函数 直接量定义对象: var o={ } 引用对象: o={x:1,y:true} //创建对象,并引用该对象给变量o o1=o;//复制变量o alert(delete o);//删除成功 alert(o1.x)-->1 alert(o.x)-->提示没有定义对象,因为o被删除了 销毁对象:javascript提供一套垃圾回收机制,自动回收程序中无用的存储单元 相当于 o=null 属性的基本操作: 定义属性 : var o={x:1,y:true} ES5新增定义属性:2个 Object.defineProperty(object,propertyname,descriptor) Object.defineProperties(object,descriptors) 访问属性 : o.x 或者o['x'] ES5新增访问属性: 4个 Object.getPrototypeOf(object) Object.getOwnPropertyDescriptor(object,propertyname) Object.getOwnPrototypeNames(object) Object.keys(object) 赋值和删除属性:o.x=2 o.y=false // delete o.x 对象的方法: var o={ x:function(){ alert(this.y) } } o.x(); var f=o; f.y=2; f.x();--->2 原生对象类型:构造对象 实例对象 原型对象 //构造对象 function f(){return this.x +this.y} function MyClass(x,y){ //------构造对象:使用this关键字,且只能使用new运算符调用 this.x=x; this.y=y; //this.add=f;//这句一般放在外面 } MyClass.add=f;//替代上句,每次创建一个对象创建一次add() MyClass.prototype.add=f;//---- 或Myclass.prototype={add:f;}---原型对象,只需创建一次add(),实例对象都继承它,提高了资源利用率 var o=new MyClass(10,20)//-----实例对象 alert(o.add())-->30