在编程语言中,数据集合表示一类数据的总和,集合即时一种数据存储结构也是数据组织结构,更是一种数据处理结构,数据集合有多种类型,如下:
数组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<arr.length,i++){ console.log(arr[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 '<font color="'+color+'">'+this.valueOf()+'</font>'
}
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