splice()
是插入或删除数组元素的通用分方法.在原数组上进行修改.就像reserve和sort那样并不创建数新数组.可以把元素从数组中删除.也可以把新元素插入到数组中.或者同时执行两种操作.如果该函数只有第一个函数或者两个函数.那么是删除元素,并且返回删除元素组成的数组.
该情况下,第一个参数是索引位置,第二个参数是删除元素的个数.
如果参数有三个以上,则是添加元素.要小心的是,如果传递给他的是一个数组.将直接插入数组本身,而不是这个数组的元素(及不会拆分待插入的数组).
toString()
将数组中的每一个元素都转换成字符串,然后用’,’连接.并返回这个连接后的字符串.
哈希表
HashTable是根据关键码值对(key-value)来进行直接访问的集合类型的数据结构.通过把关键码映射到表中的一个位置来访问记录.以加快查找速度.哈希表是一种查找效率很高的结构.在JavaScript中,由于对象的属性可以动态添加和删除.因此.把一个对象作为集合来对象,就是一个哈希表.例如
var hashTable1={a:1,b:2}
定义了一个名为hashTable的集合.初始化了他的三个关键码(key),分别是a,b,c
可以通过下标访问
例如:
hashTable1[‘a’]
也可以通过in运算符检查某个关键码是否存在于集合中
a in hashTable
当然,也可以通过delete预算福删除指定的属性
delete(hashTablel1(‘a’))
高级用法–集合操作和闭包
字符串
字符串是JavaScript基本数据类型中最复杂的一种类型,字符串对象和正则表达式对象作为一种基本类型.字符串的构造由JavaScript核心以多种不同的方式提供
字符串构造函数
JavaScript提供了字符串构造函数 String()
注意,string构造的字符串和字符串常量不同.字符串常量的类型是基本数据类型string.而string()的类型是对象object
事实上,string应当看做事字符串基本类型的包装类.另外.同其他的包装类相似,string()也可以作为普通函数来调用.
抽取和检索字串
string对象的charAt方法和charCodeAt方法用来抽取字符串指定位置的字符.而charCodeAt方法返回的是该字符的Unicode编码.如果指定位置的字符不存在.charAt方法返回空字符串”,而charCodeAt方法返回NaN.
string对象的indexOf方法和lastIndexOf方法用来在字符串中检索一个字符或一个字串.如果该字符或者字串存在,indexOf返回他第一次出现在字符串中的位置.注意是从0开始的数值表示
string对象subString方法和slice方法,都是用来抽取字符串的字串.二者的区别在于,slice接受负数作为参数.这时候相对位置从字符串的末尾开始算而不是从字符串头开始计算.如果slice的参数表示的起始位置大于终止位置.那么他返回值将返回一个空串.但是如果subString的第一个参数大于第二个参数.在抽取字串前会自动交互这两个参数的值.注意,如果被检索的字符或字串在字符串中不存在.indexOf和lastIndexOf方法都返回数值-1.
连接拆分字符串
string对象的split方法可以用来拆分字符串.
第一个参数为一个字符串或者一个正则表达式作为分隔符.split第二个参数指定了分割后字符串数组的最大长度.如果大于这个长度的字串将被舍弃.如果不写这个参数.那么将不舍弃任何字串.
字符串可以通过运算符+,也可以通过数组的join方法.数组的join方法正好和split执行相反的操作.
字符串的concat方法
字符串的模式匹配是一类非常强大的操作.通常和正则表达式关系密切.JavaScript中关于模式匹配的字符串方法主要是match,search,replace.Match是常用的字符串匹配方法.参数是模式,这里用正则表达式 \D来描述非数值.
Search是另一种模式匹配方法,检索字符串中的字串,返回复合模式的字串位置.如果未找到,则返回-1.
其他方法
string.fromCharAt
静态方法,参数是一个代表unicode编码的数值.返回由这个编码对应的Unicode字符构成的字符串
toLowerCase
返回一个字符串所有字符串转换成小写形式后的字符串
toUpperCase
返回所有字符串转换成大写形式后的字符串
正则表达式是一种具有递归结构的字符串表达式.在数学上,同等于一个有限状态自动机.正则表达式是一种数学形式.用来描述正则代数的表达式.
在结构上精准的对应于有限状态自动机
javas中的正则表达式提现为RegExp对象,提供了一个字符串的匹配模式.为字符串操作提供了多种强大的匹配和替换方法.
例如:
var pattern={}
patten.empty=/^\s\n\r\t*s/
在这里将这则表达式当做属性来输入.
直接量字符
正则表达式中绝大部分的标识字符都可以与自身匹配.这些字符可以是字母,数字,中文其他符号中的unicode序列
标志-高级模式匹配的规则
正则表达式访问还包括最后一个元素.他是正则表达式的标志.说明了高级模式匹配的规则.和
其他正则文法不同的是.这个标志是在.符号之外说明的.
标志g说明匹配是全局的.即应当找出字符串的所有匹配
标志i说明匹配是忽略大小写的
标志m说明多模式匹配.他针对多行字符串.匹配每行中的内容.(而不是把换行作为字符串的结束标志
)并且如果标志位m的正则表达式中有^和$ 则他们分别匹配每一行的开始和结尾.
重点 用于匹配模式的string方法及其例子
string 对象支持利用正则表达式的方法,分别是search() replace match split
search方法已正则表达式作为参数.返回第一个与之匹配的字串开始的位置.如果没有任何与之匹配的
字串.返回-1
例如 str.search(/正则表达式/)
replace方法执行检索于替换操作.第一个参数是正则表达式.第二个参数是进行替换的字符串或者
闭包.他检索调用它的字符串.根据指定模式来匹配和替换. 如果正则表达式中设置了标志g
该方法用替换字符串替换所有匹配的字串.否则他只匹配和替换符合条件的第一个字串
replace功能非常强大.尤其当他的第二个参数是闭包的时.
match() 方法是唯一一个参数是正则表达式,他的行为取决于这个正则表达式的标志.
如果该正则表达式包含了标志g.返回值就是包含了出现在字符串中的所有匹配的数组