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