每个Ajax 框架都对Javascript 做了扩展,提供了很多常用函数,增强了 Javascript 的开发效率。在这里将对部分Dojo 中的常用函数做简单的介绍。由于Dojo的常用函数较多,也为方便大家阅读,将这些常用函数分为了五个类别分别进行介绍。本文将介绍第四部分的内容:String及Array扩展。
* 本系列博文的绝大多数内容来自于对dojocampus.org上的dojo reference guide文档的翻译,在此也特别感谢文档的翻译者们:Fei Jia,Zhu Xiao Wen,Li Wen Bing,Zhang Jun,Hu Kuang,Huang Wei,Wu Min Qi,Mo Ying,Cheng Fu,Zhong Si Qi
dojo.forEach,dojo.some,dojo.every,dojo.map
dojo.forEach的作用及用法类似于标准的array的forEach方法(参见JavaScript 1.6 forEach() ),用于循环数组中的所有元素,该方法兼容所有的主流浏览器。一般的循环写法为:
类似的循环可以用dojo.forEach替代:
可是,forEach并不能根据提供的条件中断循环的执行,如果想要使循环在一定条件下终止,则应该使用dojo.some()或dojo.every()方法,它们都会返回一个boolean变量,dojo.some用于判断是否数组中有任何满足给定条件的元素,如果循环到任一满足条件的元素则跳出循环并返回true;而dojo.every则用于判断是否所有的元素都满足给定的条件,如果循环到任一不满足条件的元素则跳出循环并返回false。下面是这两个方法的示例:
dojo.forEach,dojo.every都接收第三个参数用以指定回调函数的作用域。
dojo.map可以用于对给定的数组中的每个元素调用指定的回调函数,并返回处理后的一个新数组,具体用法参看下面的示例:
dojo.indexOf
顾名思义,dojo.indexOf用于返回给定元素在指定数组中的索引号(index),由于数组索引是由0开始的,如果该数组存在给定元素,会返回一个大于等于0的正整数,否则返回-1,参见下面的示例:
dojo.filter
返回满足给定数组中回调函数中规定条件的元素组成的新数组,用法参看下面的示例:
dojo.trim
dojo.trim用于移除给定字符串参数的前后空格,只接收一个参数,要进行处理的字符串:
dojo.replace
dojo.replace是一个轻量级的字符串替换、连接的工具函数,需要注意的是该方法并不能很好的支持本地化。
该函数可接受3个参数:要进行替换部分内容的字符串模板,提供替换内容的JSON对象,以及一个可选参数,是正则表达式模板用于规定什么样的内容将会被替换,默认情况下,该模板为一个类似于{abc}的字符串。具体用法参看下面的示例:
以上就是String及Array对象的一些扩展函数,在下一部分中,会介绍关于Dojo对于事件处理及Ajax I/O的一些扩展函数。