Dojo学习笔记(4. dojo.string & dojo.lang)
模块:dojo.string.common / dojo.string
dojo.string.common 和 dojo.string 是一样的,只要require其中一个就可以使用以下方法
dojo.string.trim
去掉字符串的空白
Usage Example:
s = " abc ";
dojo.string.trim(s); //will return "abc"
dojo.string.trim(s, 0); //will return "abc"
dojo.string.trim(s, 1); //will return "abc "
dojo.string.trim(s, -1);//will return " abc"
dojo.string.trimStart
去掉字符串开头的空白
Usage Example:
s = " abc ";
dojo.string.trimStart(s); //will return "abc "
dojo.string.trimEnd
去掉字符串结尾的空白
Usage Example:
s = " abc ";
dojo.string.trimEnd(s); //will return " abc"
dojo.string.repeat
生成由同一字符(串)重复组成的字符串
Usage Example:
dojo.string.repeat("a", 4); //will return "aaaa"
dojo.string.repeat("1234", 3, "-"); //will return "1234-1234-1234"
dojo.string.pad
使用字符补齐字符串
Usage Example:
dojo.string.pad("100", 6); //will return "000100"
dojo.string.pad("100", 6, "0", 1); //will return "000100"
dojo.string.pad("100", 6, "0", -1); //will return "100000"
dojo.string.padLeft
使用字符补齐字符串开头
Usage Example:
dojo.string.padLeft("100", 6); //will return "000100"
dojo.string.padRight
使用字符补齐字符串结尾
Usage Example:
dojo.string.padRight("100", 6); //will return "100000"
模块:dojo.lang.common / dojo.lang
dojo.lang.common 和 dojo.lang 是一样的,只要require其中一个就可以使用以下方法
dojo.lang.mixin
将一个对象的方法和属性增加到另一个对象上
Usage Example:
var s1 = {name: "TestObj", test1: function(){alert("this is test1!");}}
var s2 = {value: 1000, test2: function(){alert("this is test2!");}}
var d = {};
dojo.lang.mixin(d, s1, s2); //执行后d就具备了s1和s2的所有属性和方法
d.test1();
dojo.lang.extend
为指定类的原型扩展方法与属性
Usage Example:
TestClass = function() {};
dojo.lang.extend(TestClass, {name: "demo", test: function(){alert("Test!");}});
var o = new TestClass(); //TestClass本来是没有test方法的,但是extend以后就有test方法了
o.test();
dojo.lang.find=dojo.lang.indexOf
查找指定对象在指定数组中的位置
Usage Example:
var arr = [1,2,3,3,2,1];
dojo.lang.find(arr, 2); //will return 1
dojo.lang.find(arr, 2, true); //will return 1
dojo.lang.find(arr, "2", true); //will return -1
dojo.lang.find(arr, "2", false); //will return 1
dojo.lang.find(arr, 2, true, true); //will return 4
dojo.lang.findLast=dojo.lang.lastIndexOf
查找指定对象在指定数组中的位置,从后往前查
Usage Example:
var arr = [1,2,3,3,2,1];
dojo.lang.findLast(arr, 2); //will return 4
dojo.lang.findLast(arr, 2, true); //will return 4
dojo.lang.findLast(arr, "2", true); //will return -1
dojo.lang.findLast(arr, "2", false); //will return 4
dojo.lang.inArray
查找指定对象是否在指定数组中
Usage Example:
var arr = [1,2,3];
dojo.lang.inArray(arr, 1); //will return true
dojo.lang.inArray(arr, 4); //will return false
dojo.lang.isObject
判断输入的类型是否为对象
Usage Example:
dojo.lang.isObject(new String()); //will return true
dojo.lang.isObject("123")); //will return false
dojo.lang.isArray
判断输入的类型是否为数组
Usage Example:
dojo.lang.isArray({a:1,b:2}); //will return false
dojo.lang.isArray([1,2,3]); //will return true
dojo.lang.isFunction
判断输入的类型是否为函数
Usage Example:
dojo.lang.isFunction(function() {}); //will return true
dojo.lang.isString
判断输入的类型是否为字符串
Usage Example:
dojo.lang.isString(""); //will return true
dojo.lang.isString(0); //will return false
dojo.lang.isAlien
判断输入的类型是否为系统函数
Usage Example:
dojo.lang.isAlien(isNaN); //will return true
dojo.lang.isBoolean
判断输入的类型是否为布尔类型
Usage Example:
dojo.lang.isBoolean(2>1); //will return true
dojo.lang.isNumber
判断输入的类型是否为数值,根据注释所说,此函数使用不太可靠,但是可替换使用的系统函数isNaN也不太可靠
dojo.lang.isUndefined
判断输入是否为未定义,根据注释所说,此函数有可能会导致抛出异常,推荐使用 typeof foo == "undefined" 来判断
模块:dojo.lang.extras
dojo.lang.setTimeout
延迟指定时间后执行指定方法
Usage Example:
function onTime(msg)
{
dojo.debug(msg)
}
dojo.lang.setTimeout(onTime, 1000, "test"); //1秒后会输出调试信息"test"
dojo.lang.setTimeout(dojo, "debug", 1000, "test"); //1秒后会输出调试信息"test"
dojo.lang.getNameInObj
获得指定项目在指定对象中的名称
Usage Example:
dojo.lang.getNameInObj(dojo, dojo.debug); //will return "debug"
dojo.lang.shallowCopy
返回指定对象的浅表复制副本
Usage Example:
dojo.lang.shallowCopy({}); //will return a 空对象
dojo.lang.firstValued
返回第一个存在定义的参数
Usage Example:
var a;
dojo.lang.firstValued(a,2,3); //will return 2
以上全部是自己阅读源代码写的总结,如有错误,还请指明。