util - 工具
util - 工具
util模块是对齐早期Node.js的util模块而实现的,另外为方便Java交互而增加了$util.java对象。
# $util.java
提供Java交互的辅助工具。
# $util.java.instanceOf(obj, clazz)
obj {any} Java对象
clazz {string} 类名
返回 {boolean}
判断一个对象是否属于某个指定的类的实例,如果是,返回true,否则返回false。
# $util.java.array(type, size)
type {string} 数组类型,可以是一个Java类名,或者是以下初始类型的名称:
"int"
"long"
"double"
"char"
"byte"
"float"
size {number} 数组大小
返回 {Java数组}
创建一个Java数组并返回。例如创建二进制byte数组let bytes = $util.java.array('byte', 1024)。
# $util.java.toJsArray(list, nullListToEmptyArray)
list {List} java.util.List列表对象
nullListToEmptyArray {boolean} null列表对象是否转化为空数组
返回 {Array}
将Java列表转换为javascript数组。
# $util.java.objectToMap(obj)
obj {any} 对象
返回 {java.util.Map}
将JavaScript object对象转换成java.util.Map。
# $util.java.mapToObject
map {Map} Java Map对象
返回 {obj}
将java.util.Map的java对象转换成JavaScript object对象。
# $util.format(format[, ...args])
format {string} 类似printf的格式字符串。
$util.format() 方法使用第一个参数返回一个格式化的字符串作为类似printf的格式。
第一个参数是一个包含零个或多个 placeholder 标记的字符串。 每个占位符标记都替换为从对应的论据。 支持的占位符有:
%s - 字符串。
%d - 数字(整数或浮点值)。
%i - 整数。
%f - 浮点值。
%j - JSON。 如果参数被替换为字符串 '[Circular]'包含循环引用。
%o - 对象。 对象的字符串表示: 使用通用的 JavaScript 对象格式。 类似于 $util.inspect(),带有选项 { showHidden: true, depth: 4, showProxy: true }。 这将显示完整的对象,包括不可枚举的符号和属性。
%O - 对象。 具有通用 JavaScript 对象格式的对象的字符串表示形式。 类似于 $util.inspect() 没有选项。 这将显示不包括不可枚举符号和属性的完整对象。
%% - 单个百分号('%')。 这不会消耗一个论点。
如果占位符没有对应的参数,则占位符为没有被替换。
$util.format('%s:%s', 'foo');
// Returns: 'foo:%s'
如果传递给 $util.format() 方法的参数多于占位符的数量,则额外的参数将被强制转换为字符串,然后连接到返回的字符串,每个字符串由空格分隔。 typeof 为 'object' 或 'symbol' 的过多参数(null 除外)将由 $util.inspect() 转换。
$util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
如果第一个参数不是字符串,则 $util.format() 返回一个字符串,该字符串是由空格分隔的所有参数的串联。 使用 $util.inspect() 将每个参数转换为字符串。
$util.format(1, 2, 3); // '1 2 3'
如果只有一个参数被传递给 $util.format() ,它会按原样返回,没有任何格式。
$util.format('%% %s'); // '%% %s'
# $util.inspect(object[, options])
object {any} 任何 JavaScript 原语或对象。
选项 {对象}
showHidden {boolean} 如果为 true,则 object 的不可枚举符号和属性将包含在格式化结果中。 默认为false。
depth {number} 指定格式化object时递归的次数。 这对于检查大型复杂对象很有用。默认为2。 为了让它无限期地递归,传递null。
colors {boolean} 如果为 true,输出将使用 ANSI 颜色样式代码。 默认为false。 颜色是可自定义的,请参阅 Customizing $util.inspect colors。
customInspect {boolean} 如果为 false,则不会调用在被检查的object上导出的自定义inspect(depth, opts)函数。默认为true。
$util.inspect() 方法返回 object 的字符串表示形式,主要用于调试。 可以传递额外的 options来改变格式化字符串的某些方面。
以下示例检查 $util 对象的所有属性:
console.log($util.inspect($util, { showHidden: true, depth: null }));
值可以提供它们自己的自定义inspect(depth, opts)函数,当调用这些函数时,它们会在递归检查中接收当前的 depth ,以及传递给$util.inspect()的选项对象。
# $util.extend(target, source)
target {object} 目标构造函数
source {object} 要继承的构造函数
将原型方法从一个构造函数继承到另一个构造函数。类似于Node.js中的util.inherits。
function SuperClass() {
this.value = 1;
}
SuperClass.prototype.increment = function() {
this.value++;
}
$util.extend(ChildClass, SuperClass);
function ChildClass() {
SuperClass.call(this);
}
ChildClass.prototype.print = function () {
console.log(this.value);
}
let child = new ChildClass();
child.increment();
child.print();
# $util.isArray(object)
稳定性:0 - 已弃用
object {any}
Array.isArray 的内部别名。
如果给定的 object 是 Array,则返回 true。 否则,返回 false。
$util.isArray([]);
// Returns: true
$util.isArray(new Array());
// Returns: true
$util.isArray({});
// Returns: false
# $util.isBoolean(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 Boolean,则返回 true。 否则,返回 false。
$util.isBoolean(1);
// Returns: false
$util.isBoolean(0);
// Returns: false
$util.isBoolean(false);
// Returns: true
# $util.isDate(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 Date,则返回 true。 否则,返回 false。
$util.isDate(new Date());
// Returns: true
$util.isDate(Date());
// false (without 'new' returns a String)
$util.isDate({});
// Returns: false
# $util.isError(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 Error,则返回 true。 否则,返回false。
$util.isError(new Error());
// Returns: true
$util.isError(new TypeError());
// Returns: true
$util.isError({ name: 'Error', message: 'an error occurred' });
// Returns: false
请注意,此方法依赖于 Object.prototype.toString() 行为。 当 object 参数操作 @@toStringTag 时,可能会获得不正确的结果。
let obj = { name: 'Error', message: 'an error occurred' };
$util.isError(obj);
// Returns: false
obj[Symbol.toStringTag] = 'Error';
$util.isError(obj);
// Returns: true
# $util.isFunction(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 Function,则返回 true。 否则,返回 false。
function Foo() {}
let Bar = () => {};
$util.isFunction({});
// Returns: false
$util.isFunction(Foo);
// Returns: true
$util.isFunction(Bar);
// Returns: true
# $util.isNull(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 严格为 null,则返回 true。 否则,返回 false。
$util.isNull(0);
// Returns: false
$util.isNull(undefined);
// Returns: false
$util.isNull(null);
// Returns: true
# $util.isNullOrUndefined(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 null 或 undefined,则返回 true。 否则, 返回 false。
$util.isNullOrUndefined(0);
// Returns: false
$util.isNullOrUndefined(undefined);
// Returns: true
$util.isNullOrUndefined(null);
// Returns: true
# $util.isNumber(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 Number,则返回 true。 否则,返回 false。
$util.isNumber(false);
// Returns: false
$util.isNumber(Infinity);
// Returns: true
$util.isNumber(0);
// Returns: true
$util.isNumber(NaN);
// Returns: true
# $util.isObject(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 严格来说是 Object 并且 不是 Function,则返回 true。 否则,返回 false。
$util.isObject(5);
// Returns: false
$util.isObject(null);
// Returns: false
$util.isObject({});
// Returns: true
$util.isObject(function() {});
// Returns: false
# $util.isPrimitive(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是原始类型,则返回 true。 否则,返回 false。
$util.isPrimitive(5);
// Returns: true
$util.isPrimitive('foo');
// Returns: true
$util.isPrimitive(false);
// Returns: true
$util.isPrimitive(null);
// Returns: true
$util.isPrimitive(undefined);
// Returns: true
$util.isPrimitive({});
// Returns: false
$util.isPrimitive(function() {});
// Returns: false
$util.isPrimitive(/^$/);
// Returns: false
$util.isPrimitive(new Date());
// Returns: false
# $util.isRegExp(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 RegExp,则返回 true。 否则,返回 false。
$util.isRegExp(/some regexp/);
// Returns: true
$util.isRegExp(new RegExp('another regexp'));
// Returns: true
$util.isRegExp({});
// Returns: false
# $util.isString(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 string,则返回 true。 否则,返回 false。
$util.isString('');
// Returns: true
$util.isString('foo');
// Returns: true
$util.isString(String('foo'));
// Returns: true
$util.isString(5);
// Returns: false
# $util.isUndefined(object)
稳定性:0 - 已弃用
object {any}
如果给定的 object 是 undefined,则返回 true。 否则,返回 false。
let foo = undefined;
$util.isUndefined(5);
// Returns: false
$util.isUndefined(foo);
// Returns: true
$util.isUndefined(null);
// Returns: false