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