Skip to content

js类型判断函数 ​

本节目标:理解“js类型判断函数”的核心思路,并能把它用于实际开发或面试表达。

function isType(typeName, val) {
  return Object.prototype.toString.call(val) === `[object ${typeName}]`;
}
function curring(fn) {
  // 存储每次调用的时候传入的变量
  // 存储每次调用时传入的参数
  const inner = (args = []) => {
    return args.length >= fn.length
      ? fn(...args)
      : (...userArgs) => inner([...args, ...userArgs]);
  };
  return inner();
}
// 柯里化:让函数变得更具体一些;反柯里化:让函数范围变的更大一些
let util = {};
[
  'Null',
  'Undefined',
  'Boolean',
  'Number',
  'String',
  'BigInt',
  'Symbol',
  'Function',
  'Object',
].forEach((typeName) => {
  util['is' + typeName] = curring(isType)(typeName);
});

本站总访问 — 次