Methods
isUndefined
Boolean isUndefined ( o )
判断是否 undefined
isBoolean
Boolean isBoolean ( o )
判断是否布尔值。
isString
Boolean isString ( o )
判断是否字符串。
isNumber
Boolean isNumber ( o )
判断是否有效数值。
Infinity 和 NaN 返回 false.
isPlainObject
Boolean isPlainObject ( o )
判断是否普通对象(用 { } 或 new Object 创建的对象)。
isEmptyObject
Boolean isEmptyObject ( o )
判断是否空对象(没有任何可遍历的属性)。
var S = KISSY;
S.isEmptyObject({}); // => true
S.isEmptyObject([]); // => true
S.isEmptyObject({ a: 'a' }); // => false
isFunction
Boolean isFunction ( o )
判断是否函数。
IE 中,DOM 方法和 window 对象的部分方法比如 alert, 返回 false.
isArray
Boolean isArray ( o )
判断是否数组。
arguments 和 NodeList 不是数组,返回 false.
trim
String trim ( str )
去除字符串两端的空白字符。
substitute
String substitute ( str, o, regexp )
将字符串中的占位符替换为对应的键值。
var S = KISSY,
str = '{name} is {prop_1} and {prop_2}.',
obj = {name: 'Jack Bauer', prop_1: 'our lord', prop_2: 'savior'};
S.substitute(str, obj); // => 'Jack Bauer is our lord and savior.'
each
void each ( arr, fn, context )
遍历数组中的每一项,执行指定方法。
- Parameters:
-
arr
<Array>
需要遍历的数组。 -
fn
<Function>
执行函数。执行时,接收 3 个参数:当前项、当前 index, 数组。 -
context
<Object>
环境对象。
var S = KISSY,
arr = [1, 2, 3, 4, 5],
sum = 0;
S.each(arr, function(item) {
sum += item;
});
S.log(sum); // => 15
indexOf
Number indexOf ( elem, arr )
返回元素 elem 在数组 arr 中的序号。找不到时返回 -1.
inArray
Boolean inArray ( elem, arr )
判断元素 elem 是否在数组 arr 中。
makeArray
Array makeArray ( o )
将对象 o 转换为数组。
可以利用此方法将 arguments, NodeList 等 array-like 对象转换为真实数组。
var S = KISSY;
S.makeArray('str'); // => ['str']
S.makeArray(S.query('.div')); // => 由所有 div 元素组成的数组
S.makeArray(null); // => []
makeArray 方法永远返回数组。
filter
Array filter ( arr, fn, context )
遍历数组,过滤出符和条件的数组项。
- Parameters:
-
arr
<Array>
需要遍历的数组。 -
fn
<Function>
过滤函数。执行时,接收 3 个参数:当前项、当前 index, 数组。 -
context
<Object>
环境对象。
var S = KISSY,
arr = [1, 2, 3, 4, 5];
var ret = S.filter(arr, function(item) {
return item % 2 === 0;
});
S.log(ret); // => [2, 4]
param
String param ( o )
将对象 o 转换为参数字符串。
var S = KISSY;
S.param({ foo: 1, bar: 2 }); // => foo=1&bar=2
S.param({ foo: 1, bar: [2, 3] }); // => foo=1&bar%5B%5D=2&bar%5B%5D=3
S.param({ foo: '', bar: 2 }); // => foo=&bar=2
S.param({ foo: undefined, bar: 2 }); // => foo=undefined&bar=2
返回的字符串经过了 encodeURI 编码。比如 foo=1&bar%5B%5D=2&bar%5B%5D=3
, 解码后是 foo=1&bar[]=2&bar[]=3
unparam
Object unparam ( str )
将参数字符串 str 还原为对象。
var S = KISSY;
S.unparam('foo=1&bar=2'); // => { foo: 1, bar: 2 }
S.unparam('foo=1&bar[]=2&bar[]=3'); // => { foo: 1, bar: [2, 3] }
later
Object later ( fn, when, periodic, o, data )
延迟执行指定函数。
- Parameters:
-
fn
<Function>
延迟执行的函数。 -
when
<Number>
延迟时间,单位是毫秒。 -
periodic
<Boolean>
是不是周期性执行。默认为 false. -
o
<Object>
环境对象。 -
data
<Array>
传递的参数。可以为单个对象,最后会转换成数组,依次传递给执行函数。
- Returns:
Object
- timer 对象。拥有 id 和 interval 属性,还有 cancel 方法,用于取消定时器。
var S = KISSY;
S.later(function(data) {
S.log(data);
}, 0, false, null, 'I am later data.');
clone
Object|Array clone ( o )
创建一个普通对象或数组的深拷贝, 并且返回。
其他类型原样返回。
- Parameters:
-
o
<Object|Array>
待深拷贝的对象或数组。
- Returns:
Object|Array
now
Number now ( )
返回 new Date().getTime()
globalEval
void globalEval ( data )
在全局环境里执行代码片段。
var S = KISSY;
S.globalEval('var foo = 1;');
S.log(window['foo']); // => 1