高级前端手写代码【Q505】JS 中基础数据类型有哪些

JS 中基础数据类型有哪些

更多描述 追问:

  1. 如何判断某个值为基础数据类型,写一函数

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 515

Author 回答者: shfshanyue

七种,文档见 基本数据类型 - MDN

  • number
  • bigint: 这个常常会忽略,最新加入的
  • string
  • undefined
  • null
  • symbol
  • bool

关于如何判断基础数据类型,可以使用函数实现:

function isPrimitive(value) {
  const type = typeof value;
  return (
    type === "string" ||
    type === "number" ||
    type === "symbol" ||
    type === "boolean" ||
    type === "bigint" ||
    value == null
  );
}

或者使用排除法

function isPrimitive(value) {
  return (
    value == null || (typeof value !== "function" && typeof value !== "object")
  );
}

或者使用一点小技巧

function isPrimitive(value) {
  return value !== Object(value);
}

Author 回答者: qwhatevera

应该加上对bigint的判断吧 function isPrimitive(value) { const type = typeof value; return ( type === ‘string’ || type === ‘number’ || type === ‘symbol’ || type === ‘boolean’ || type === ‘bigint’ || value == null ); }

Author 回答者: shfshanyue

@qwhatevera 写漏了,已经补上了