isSymbol.js 578 B

1234567891011121314151617181920212223
  1. // @ts-nocheck
  2. import getTag from "./getTag.js";
  3. /**
  4. * Checks if `value` is classified as a `Symbol` primitive or object.
  5. *
  6. * @since 4.0.0
  7. * @category Lang
  8. * @param {*} value The value to check.
  9. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
  10. * @example
  11. *
  12. * isSymbol(Symbol.iterator)
  13. * // => true
  14. *
  15. * isSymbol('abc')
  16. * // => false
  17. */
  18. function isSymbol(value) {
  19. const type = typeof value;
  20. return (type === "symbol" ||
  21. (type === "object" && value != null && getTag(value) === "[object Symbol]"));
  22. }
  23. export default isSymbol;