当前位置:首页 > 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实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…