当前位置:首页 > JavaScript

js实现typeof

2026-04-05 12:41:09JavaScript

typeof 运算符的基本用法

JavaScript 的 typeof 运算符用于检测变量的数据类型,返回一个表示类型的字符串。以下是基本语法:

typeof operand

operand 可以是变量、对象或原始值。返回的结果是以下字符串之一:

  • "undefined"(未定义)
  • "boolean"(布尔值)
  • "number"(数字)
  • "string"(字符串)
  • "bigint"(大整数)
  • "symbol"(符号)
  • "object"(对象或 null
  • "function"(函数)

实现自定义 typeof 函数

如果需要实现一个类似 typeof 的函数,可以通过 Object.prototype.toString 方法实现更精确的类型判断:

function customTypeof(value) {
  return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}

调用示例:

js实现typeof

customTypeof(42);          // "number"
customTypeof("hello");     // "string"
customTypeof(true);        // "boolean"
customTypeof({});          // "object"
customTypeof([]);          // "array"
customTypeof(null);        // "null"
customTypeof(undefined);   // "undefined"
customTypeof(() => {});    // "function"
customTypeof(Symbol());    // "symbol"
customTypeof(10n);         // "bigint"

注意事项

typeof null 返回 "object" 是 JavaScript 的历史遗留问题。如果需要区分 null 和普通对象,可以使用以下方法:

function isNull(value) {
  return value === null;
}

对于数组和对象的区分:

js实现typeof

function isArray(value) {
  return Array.isArray(value);
}

实际应用场景

  • 检查变量是否已定义:

    if (typeof variable === 'undefined') {
    // 变量未定义
    }
  • 检查函数是否存在:

    if (typeof myFunction === 'function') {
    myFunction();
    }
  • 处理多种数据类型:

    function processValue(value) {
    switch (typeof value) {
      case 'string':
        return value.toUpperCase();
      case 'number':
        return value * 2;
      default:
        return value;
    }
    }

标签: jstypeof
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…