Skip to content

Lang (语言)

_.castArray(value)

引入版本 4.4.0

如果 value 不是数组,则将其转换为数组。

参数

  • value (*): 要检查的值。

返回

  • (Array): 返回转换后的数组。

示例

js
_.castArray(1);
// => [1]

_.castArray({ a: 1 });
// => [{ 'a': 1 }]

_.castArray("abc");
// => ['abc']

_.castArray(null);
// => [null]

_.castArray(undefined);
// => [undefined]

_.castArray();
// => []

var array = [1, 2, 3];
console.log(_.castArray(array) === array);
// => true

_.clone(value)

引入版本 0.1.0

创建一个 value浅拷贝

注意: 这个方法大致基于 结构化克隆算法,支持克隆数组、ArrayBuffer、布尔值、Date 对象、Map、数字、Object 对象、正则表达式、Set、字符串、Symbol 以及 TypedArray。 arguments 对象的自身可枚举属性会被克隆为普通对象。 对于不可克隆的值(例如错误对象、函数、DOM 节点和 WeakMap),会返回一个空对象。

参数

  • value (*): 要克隆的值。

返回

  • (*): 返回克隆后的值。

示例

js
var objects = [{ a: 1 }, { b: 2 }];

var shallow = _.clone(objects);
console.log(shallow[0] === objects[0]);
// => true (因为是浅拷贝,所以内部对象的引用保持不变)

_.cloneDeep(value)

引入版本 1.0.0

这个方法类似 _.clone,区别在于它会 递归地 克隆 value。(即深拷贝)。

参数

  • value (*): 要深拷贝的值。

返回

  • (*): 返回深拷贝后的值。

示例

js
var objects = [{ a: 1 }, { b: 2 }];

var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false

_.cloneDeepWith(value, [customizer])

引入版本 4.0.0

这个方法类似 _.cloneWith,区别在于它会 递归地 克隆 value

参数

  • value (*): 要深拷贝的值。
  • [customizer] (Function): 用来定制克隆的函数。

返回

  • (*): 返回深拷贝后的值。

示例

js
function customizer(value) {
  if (_.isElement(value)) {
    return value.cloneNode(true);
  }
}

var el = _.cloneDeepWith(document.body, customizer);

console.log(el === document.body);
// => false

console.log(el.nodeName);
// => 'BODY'

console.log(el.childNodes.length);
// => 20

_.cloneWith(value, [customizer])

引入版本 4.0.0

这个方法类似 _.clone,区别在于它接受一个 customizer(定制函数)来生成克隆值。如果 customizer 返回 undefined,克隆操作将由本方法处理(即使用默认克隆行为)。

customizer 调用时会传入四个参数:(value [, index|key, object, stack])

参数

  • value (*): 要克隆的值。
  • [customizer] (Function): 用来定制克隆的函数。

返回

  • (*): 返回克隆后的值。

示例

js
function customizer(value) {
  if (_.isElement(value)) {
    return value.cloneNode(false);
  }
}

var el = _.cloneWith(document.body, customizer);

console.log(el === document.body);
// => false

console.log(el.nodeName);
// => 'BODY'

console.log(el.childNodes.length);
// => 0

_.conformsTo(object, source)

引入版本 4.14.0

通过调用 source 对象中包含的断言属性(predicate properties)与 object 中相应的属性值进行匹配,来检查 object 是否符合 source

注意:source 参数被部分应用时,此方法等同于 _.conforms

参数

  • object (Object): 要检查的对象。
  • source (Object): 包含断言属性的对象,用于进行符合性检查。

返回

  • (boolean): 如果 object 符合 source,返回 true,否则返回 false

示例

js
var object = { a: 1, b: 2 };

_.conformsTo(object, {
  b: function (n) {
    return n > 1;
  },
});
// => true

_.conformsTo(object, {
  b: function (n) {
    return n > 2;
  },
});
// => false

_.eq(value, other)

引入版本 4.0.0

执行 SameValueZero 比较来确定两个值是否相等。

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果两个值相等返回 true,否则返回 false

示例

js
var object = { a: 1 };
var other = { a: 1 };

_.eq(object, object);
// => true

_.eq(object, other);
// => false

_.eq("a", "a");
// => true

_.eq("a", Object("a"));
// => false

_.eq(NaN, NaN);
// => true

_.gt(value, other)

引入版本 3.9.0

检查 value 是否大于 other

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果 value 大于 other 返回 true,否则返回 false

示例

js
_.gt(3, 1);
// => true

_.gt(3, 3);
// => false

_.gt(1, 3);
// => false

_.gte(value, other)

引入版本 3.9.0

检查 value 是否大于或等于 other

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果 value 大于或等于 other 返回 true,否则返回 false

示例

js
_.gte(3, 1);
// => true

_.gte(3, 3);
// => true

_.gte(1, 3);
// => false

_.isArguments(value)

引入版本 0.1.0

检查 value 是否是一个类 arguments 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是一个 arguments 对象,返回 true,否则返回 false

示例

js
_.isArguments(
  (function () {
    return arguments;
  })()
);
// => true

_.isArguments([1, 2, 3]);
// => false

_.isArray(value)

引入版本 0.1.0

检查 value 是否被归类为 Array 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是数组返回 true,否则返回 false

示例

js
_.isArray([1, 2, 3]);
// => true

_.isArray(document.body.children);
// => false

_.isArray("abc");
// => false

_.isArray(_.noop);
// => false

_.isArrayBuffer(value)

引入版本 4.3.0

检查 value 是否是 ArrayBuffer 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 ArrayBuffer 对象返回 true,否则返回 false

示例

js
_.isArrayBuffer(new ArrayBuffer(2));
// => true

_.isArrayBuffer(new Array(2));
// => false

_.isArrayLike(value)

引入版本 4.0.0

检查 value 是否是类数组。

如果一个值不是函数,且拥有一个整数类型的 length 属性,其值大于或等于 0 且小于或等于 Number.MAX_SAFE_INTEGER,那么它就被认为是类数组。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是类数组返回 true,否则返回 false

示例

js
_.isArrayLike([1, 2, 3]);
// => true

_.isArrayLike(document.body.children);
// => true

_.isArrayLike("abc");
// => true

_.isArrayLike(_.noop);
// => false

_.isArrayLikeObject(value)

引入版本 4.0.0

这个方法类似 _.isArrayLike,区别在于它还会检查 value 是否是一个 对象

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是类数组对象返回 true,否则返回 false

示例

js
_.isArrayLikeObject([1, 2, 3]);
// => true

_.isArrayLikeObject(document.body.children);
// => true

_.isArrayLikeObject("abc");
// => false

_.isArrayLikeObject(_.noop);
// => false

_.isBoolean(value)

引入版本 0.1.0

检查 value 是否是原始布尔值或者对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是布尔值返回 true,否则返回 false

示例

js
_.isBoolean(false);
// => true

_.isBoolean(null);
// => false

_.isBuffer(value)

引入版本 4.3.0

检查 value 是否是 Buffer。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 Buffer 返回 true,否则返回 false

示例

js
_.isBuffer(new Buffer(2));
// => true

_.isBuffer(new Uint8Array(2));
// => false

_.isDate(value)

引入版本 0.1.0

检查 value 是否被归类为 Date 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 Date 对象返回 true,否则返回 false

示例

js
_.isDate(new Date());
// => true

_.isDate("Mon April 23 2012");
// => false

_.isElement(value)

引入版本 0.1.0

检查 value 是否可能是 DOM 元素。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 DOM 元素返回 true,否则返回 false

示例

js
_.isElement(document.body);
// => true

_.isElement("<body>");
// => false

_.isEmpty(value)

引入版本 0.1.0

检查 value 是否为一个空对象、集合、Map 或 Set。

  • 对象:如果没有自身的可枚举字符串键属性,则被认为是空的。
  • 类数组(如 arguments 对象、数组、Buffer、字符串或 jQuery 集合):如果 length0,则被认为是空的。
  • Map 和 Set:如果 size0,则被认为是空的。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 为空返回 true,否则返回 false

示例

js
_.isEmpty(null);
// => true

_.isEmpty(true);
// => true

_.isEmpty(1);
// => true

_.isEmpty([1, 2, 3]);
// => false

_.isEmpty({ a: 1 });
// => false

_.isEqual(value, other)

引入版本 0.1.0

执行两个值之间的 深比较(deep comparison)来确定它们是否等价。

注意: 此方法支持比较 arrays(数组)、array buffers、booleans(布尔值)、date objects(日期对象)、error objects(错误对象)、maps、numbers(数字)、Object objects(对象)、regexes(正则表达式)、sets、strings(字符串)、symbols 以及 typed arrays(类型化数组)。 Object 对象仅比较其自身的、可枚举的属性(不包含继承属性)。 函数和 DOM 节点使用严格相等(===)进行比较。

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果两个值等价返回 true,否则返回 false

示例

js
var object = { a: 1 };
var other = { a: 1 };

_.isEqual(object, other);
// => true

console.log(object === other);
// => false

_.isEqualWith(value, other, [customizer])

引入版本 4.0.0

这个方法类似 _.isEqual,区别在于它接受一个 customizer(定制比较器),调用该函数来比较值。如果 customizer 返回 undefined,比较将由本方法内部处理(即使用默认的深比较行为)。

customizer 调用时会传入最多六个参数:(objValue, othValue [, index|key, object, other, stack])

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。
  • [customizer] (Function): 用来定制比较的函数。

返回

  • (boolean): 如果两个值等价返回 true,否则返回 false

示例

js
function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value);
}

function customizer(objValue, othValue) {
  if (isGreeting(objValue) && isGreeting(othValue)) {
    return true;
  }
}

var array = ["hello", "goodbye"];
var other = ["hi", "goodbye"];

_.isEqualWith(array, other, customizer);
// => true

_.isError(value)

引入版本 3.0.0

检查 value 是否是 ErrorEvalErrorRangeErrorReferenceErrorSyntaxErrorTypeErrorURIError 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是一个 error 对象返回 true,否则返回 false

示例

js
_.isError(new Error());
// => true

_.isError(Error);
// => false

_.isFinite(value)

引入版本 0.1.0

检查 value 是否是原始的有限数值(finite primitive number)。

注意: 此方法基于 Number.isFinite

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是有限数值返回 true,否则返回 false

示例

js
_.isFinite(3);
// => true

_.isFinite(Number.MIN_VALUE);
// => true

_.isFinite(Infinity);
// => false

_.isFinite("3");
// => false

_.isFunction(value)

引入版本 0.1.0

检查 value 是否被归类为 Function 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是函数返回 true,否则返回 false

示例

js
_.isFunction(_);
// => true

_.isFunction(/abc/);
// => false

_.isInteger(value)

引入版本 4.0.0

检查 value 是否为一个整数。

注意: 这个方法基于 Number.isInteger

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是整数返回 true,否则返回 false

示例

js
_.isInteger(3);
// => true

_.isInteger(Number.MIN_VALUE);
// => false

_.isInteger(Infinity);
// => false

_.isInteger("3");
// => false

_.isLength(value)

引入版本 4.0.0

检查 value 是否为有效的类数组长度。

注意: 此方法大致基于 ToLength

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是有效长度返回 true,否则返回 false

示例

js
_.isLength(3);
// => true

_.isLength(Number.MIN_VALUE);
// => false

_.isLength(Infinity);
// => false

_.isLength("3");
// => false

_.isMap(value)

引入版本 4.3.0

检查 value 是否被归类为 Map 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 Map 对象返回 true,否则返回 false

示例

js
_.isMap(new Map());
// => true

_.isMap(new WeakMap());
// => false

_.isMatch(object, source)

引入版本 3.0.0

执行两个对象之间的 深度的部分比较(partial deep comparison),以确定 object 是否包含与 source 等价的属性值。

注意:source 为部分应用参数时,此方法等同于 _.matches。 部分比较时,空的数组或对象 source 值可以匹配任何数组或对象 object 值。请参考 _.isEqual 了解支持的值比较列表。

参数

  • object (Object): 要检查的对象。
  • source (Object): 包含要匹配属性值的对象。

返回

  • (boolean): 如果 object 匹配,返回 true,否则返回 false

示例

js
var object = { a: 1, b: 2 };

_.isMatch(object, { b: 2 });
// => true

_.isMatch(object, { b: 1 });
// => false

_.isMatchWith(object, source, [customizer])

引入版本 4.0.0

这个方法类似 _.isMatch,区别在于它接受一个 customizer(定制比较器),调用该函数来比较值。如果 customizer 返回 undefined,比较将由本方法内部处理(即使用默认的比较行为)。

customizer 调用时会传入五个参数:(objValue, srcValue, index|key, object, source)

参数

  • object (Object): 要检查的对象。
  • source (Object): 包含要匹配属性值的对象。
  • [customizer] (Function): 用来定制比较的函数。

返回

  • (boolean): 如果 object 匹配,返回 true,否则返回 false

示例

js
function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value);
}

function customizer(objValue, srcValue) {
  if (isGreeting(objValue) && isGreeting(srcValue)) {
    return true;
  }
}

var object = { greeting: "hello" };
var source = { greeting: "hi" };

_.isMatchWith(object, source, customizer);
// => true

_.isNaN(value)

引入版本 0.1.0

检查 value 是否是 NaN

注意: 此方法基于 Number.isNaN,与全局的 isNaN 不同。全局的 isNaN 对于 undefined 和其他非数字值也会返回 true

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 valueNaN 返回 true,否则返回 false

示例

js
_.isNaN(NaN);
// => true

_.isNaN(new Number(NaN));
// => true

isNaN(undefined);
// => true

_.isNaN(undefined);
// => false

_.isNative(value)

引入版本 3.0.0

检查 value 是否是一个原始的原生函数。

注意: 在存在 core-js 包的环境中,该方法无法可靠地检测原生函数,因为 core-js 会规避此类检测。尽管有多次请求,但 core-js 维护者已明确表示:任何尝试修复此检测的举动都将受阻。结果就是我们别无选择(可能会导致检测失败)。不幸的是,这也影响了像 babel-polyfill 这样依赖 core-js 的包。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是原生函数返回 true,否则返回 false

示例

js
_.isNative(Array.prototype.push);
// => true

_.isNative(_);
// => false

_.isNil(value)

引入版本 4.0.0

检查 value 是否是 nullundefined

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 valuenullundefined 返回 true,否则返回 false

示例

js
_.isNil(null);
// => true

_.isNil(void 0);
// => true

_.isNil(NaN);
// => false

_.isNull(value)

引入版本 0.1.0

检查 value 是否为 null

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 valuenull 返回 true,否则返回 false

示例

js
_.isNull(null);
// => true

_.isNull(void 0);
// => false

_.isNumber(value)

引入版本 0.1.0

检查 value 是否被归类为 Number 原始值或对象。

注意: 要排除 Infinity-InfinityNaN(它们在 JavaScript 中都被归类为数字),请使用 _.isFinite 方法。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是数字返回 true,否则返回 false

示例

js
_.isNumber(3);
// => true

_.isNumber(Number.MIN_VALUE);
// => true

_.isNumber(Infinity);
// => true

_.isNumber("3");
// => false

_.isObject(value)

引入版本 0.1.0

检查 value 是否为 Object语言类型。(即:数组、函数、对象、正则表达式、new Number(0) 以及 new String('') 等)。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是对象返回 true,否则返回 false

示例

js
_.isObject({});
// => true

_.isObject([1, 2, 3]);
// => true

_.isObject(_.noop);
// => true

_.isObject(null);
// => false

_.isObjectLike(value)

引入版本 4.0.0

检查 value 是否是 类对象。如果一个值不是 nulltypeof 结果是 "object",则被认为是类对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是类对象返回 true,否则返回 false

示例

js
_.isObjectLike({});
// => true

_.isObjectLike([1, 2, 3]);
// => true

_.isObjectLike(_.noop);
// => false

_.isObjectLike(null);
// => false

_.isPlainObject(value)

引入版本 0.8.0

检查 value 是否是 普通对象(plain object)。也就是说,该对象由 Object 构造函数创建,或者其 [[Prototype]]null

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是普通对象返回 true,否则返回 false

示例

js
function Foo() {
  this.a = 1;
}

_.isPlainObject(new Foo());
// => false

_.isPlainObject([1, 2, 3]);
// => false

_.isPlainObject({ x: 0, y: 0 });
// => true

_.isPlainObject(Object.create(null));
// => true

_.isRegExp(value)

引入版本 0.1.0

检查 value 是否被归类为 RegExp 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是正则表达式返回 true,否则返回 false

示例

js
_.isRegExp(/abc/);
// => true

_.isRegExp("/abc/");
// => false

_.isSafeInteger(value)

引入版本 4.0.0

检查 value 是否是一个安全整数(safe integer)。一个整数被认为是安全的,前提是它是一个 IEEE-754 双精度数字,且不是舍入不安全整数的结果。

注意: 此方法基于 Number.isSafeInteger

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是安全整数返回 true,否则返回 false

示例

js
_.isSafeInteger(3);
// => true

_.isSafeInteger(Number.MIN_VALUE);
// => false

_.isSafeInteger(Infinity);
// => false

_.isSafeInteger("3");
// => false

_.isSet(value)

引入版本 4.3.0

检查 value 是否被归类为 Set 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 Set 对象返回 true,否则返回 false

示例

js
_.isSet(new Set());
// => true

_.isSet(new WeakSet());
// => false

_.isString(value)

引入版本 0.1.0

检查 value 是否被归类为 String 原始值或对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是字符串返回 true,否则返回 false

示例

js
_.isString("abc");
// => true

_.isString(1);
// => false

_.isSymbol(value)

引入版本 4.0.0

检查 value 是否被归类为 Symbol 原始值或对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 symbol 返回 true,否则返回 false

示例

js
_.isSymbol(Symbol.iterator);
// => true

_.isSymbol("abc");
// => false

_.isTypedArray(value)

引入版本 3.0.0

检查 value 是否被归类为类型化数组(typed array)。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是类型化数组返回 true,否则返回 false

示例

js
_.isTypedArray(new Uint8Array());
// => true

_.isTypedArray([]);
// => false

_.isUndefined(value)

引入版本 0.1.0

检查 value 是否是 undefined

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 valueundefined 返回 true,否则返回 false

示例

js
_.isUndefined(void 0);
// => true

_.isUndefined(null);
// => false

_.isWeakMap(value)

引入版本 4.3.0

检查 value 是否被归类为 WeakMap 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 WeakMap 对象返回 true,否则返回 false

示例

js
_.isWeakMap(new WeakMap());
// => true

_.isWeakMap(new Map());
// => false

_.isWeakSet(value)

引入版本 4.3.0

检查 value 是否被归类为 WeakSet 对象。

参数

  • value (*): 要检查的值。

返回

  • (boolean): 如果 value 是 WeakSet 对象返回 true,否则返回 false

示例

js
_.isWeakSet(new WeakSet());
// => true

_.isWeakSet(new Set());
// => false

_.lt(value, other)

引入版本 3.9.0

检查 value 是否小于 other

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果 value 小于 other 返回 true,否则返回 false

示例

js
_.lt(1, 3);
// => true

_.lt(3, 3);
// => false

_.lt(3, 1);
// => false

这是 _.lte 方法的中文翻译。请将其追加到 docs/lang.md 文件中。

_.lte(value, other)

引入版本 3.9.0

检查 value 是否小于或等于 other

参数

  • value (*): 要比较的值。
  • other (*): 另一个要比较的值。

返回

  • (boolean): 如果 value 小于或等于 other 返回 true,否则返回 false

示例

js
_.lte(1, 3);
// => true

_.lte(3, 3);
// => true

_.lte(3, 1);
// => false

_.toArray(value)

引入版本 0.1.0

value 转换为一个数组。

参数

  • value (*): 要转换的值。

返回

  • (Array): 返回转换后的数组。

示例

js
_.toArray({ a: 1, b: 2 });
// => [1, 2]

_.toArray("abc");
// => ['a', 'b', 'c']

_.toArray(1);
// => []

_.toArray(null);
// => []

_.toFinite(value)

引入版本 4.12.0

value 转换为一个有限数字。

参数

  • value (*): 要转换的值。

返回

  • (number): 返回转换后的数字。

示例

js
_.toFinite(3.2);
// => 3.2

_.toFinite(Number.MIN_VALUE);
// => 5e-324

_.toFinite(Infinity);
// => 1.7976931348623157e+308

_.toFinite("3.2");
// => 3.2

_.toInteger(value)

引入版本 4.0.0

value 转换为整数。

注意: 这个方法大致基于 ToInteger

参数

  • value (*): 要转换的值。

返回

  • (number): 返回转换后的整数。

示例

js
_.toInteger(3.2);
// => 3

_.toInteger(Number.MIN_VALUE);
// => 0

_.toInteger(Infinity);
// => 1.7976931348623157e+308

_.toInteger("3.2");
// => 3

_.toLength(value)

引入版本 4.0.0

value 转换为用作类数组对象长度的整数。

注意: 此方法基于 ToLength

参数

  • value (*): 要转换的值。

返回

  • (number): 返回转换后的整数。

示例

js
_.toLength(3.2);
// => 3

_.toLength(Number.MIN_VALUE);
// => 0

_.toLength(Infinity);
// => 4294967295

_.toLength("3.2");
// => 3

_.toNumber(value)

引入版本 4.0.0

value 转换为数字。

参数

  • value (*): 要处理的值。

返回

  • (number): 返回转换后的数字。

示例

js
_.toNumber(3.2);
// => 3.2

_.toNumber(Number.MIN_VALUE);
// => 5e-324

_.toNumber(Infinity);
// => Infinity

_.toNumber("3.2");
// => 3.2

_.toPlainObject(value)

引入版本 3.0.0

value 转换为一个普通对象。也就是将 value 继承的可枚举字符串键属性扁平化为该普通对象的自身属性。

参数

  • value (*): 要转换的值。

返回

  • (Object): 返回转换后的普通对象。

示例

js
function Foo() {
  this.b = 2;
}

Foo.prototype.c = 3;

_.assign({ a: 1 }, new Foo());
// => { 'a': 1, 'b': 2 }

_.assign({ a: 1 }, _.toPlainObject(new Foo()));
// => { 'a': 1, 'b': 2, 'c': 3 }

_.toSafeInteger(value)

引入版本 4.0.0

value 转换为安全整数。安全整数是指可以被正确比较和表示的整数。

参数

  • value (*): 要转换的值。

返回

  • (number): 返回转换后的整数。

示例

js
_.toSafeInteger(3.2);
// => 3

_.toSafeInteger(Number.MIN_VALUE);
// => 0

_.toSafeInteger(Infinity);
// => 9007199254740991

_.toSafeInteger("3.2");
// => 3

_.toString(value)

引入版本 4.0.0

value 转换为字符串。如果 valuenullundefined,则返回空字符串。-0 的符号会被保留。

参数

  • value (*): 要转换的值。

返回

  • (string): 返回转换后的字符串。

示例

js
_.toString(null);
// => ''

_.toString(-0);
// => '-0'

_.toString([1, 2, 3]);
// => '1,2,3'