首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js type()

在JavaScript中,typeof 是一个运算符,用于检测变量的数据类型。注意,不是 type() 函数,而是 typeof 运算符。

基础概念

typeof 运算符返回一个表示操作数类型的字符串。它可以用来检测基本数据类型(如字符串、数字、布尔值、undefined)和引用类型(如对象、数组、函数)。

优势

  • typeof 是一个内建的JavaScript运算符,使用方便。
  • 可以快速判断变量的基本数据类型。

类型及返回值

以下是 typeof 运算符对不同类型的返回值:

代码语言:txt
复制
typeof undefined; // "undefined"
typeof null;        // "object"(这是一个历史遗留问题)
typeof true;        // "boolean"
typeof 123;         // "number"
typeof "abc";       // "string"
typeof {};          // "object"
typeof function() {}; // "function"

应用场景

  • 在编写可接收多种类型参数的函数时,可以使用 typeof 来判断参数类型,并据此执行不同的逻辑。
  • 在调试时,可以使用 typeof 来检查变量的类型,以确保它们符合预期。

注意事项

  • 对于 null 值,typeof 返回 "object",这是一个已知的历史遗留问题。如果需要准确检测 null,应使用严格相等运算符 ===
  • 对于数组和日期对象等复杂类型,typeof 都会返回 "object",如果需要更精确地区分这些类型,可以使用 instanceof 运算符或 Object.prototype.toString.call() 方法。

示例代码

以下是一个使用 typeof 运算符的示例函数,该函数根据参数类型执行不同的操作:

代码语言:txt
复制
function processValue(value) {
  if (typeof value === "number") {
    return value * 2;
  } else if (typeof value === "string") {
    return value.toUpperCase();
  } else if (typeof value === "boolean") {
    return !value;
  } else {
    return "Unknown type";
  }
}

console.log(processValue(123));        // 输出: 246
console.log(processValue("hello"));    // 输出: HELLO
console.log(processValue(true));       // 输出: false
console.log(processValue(null));       // 输出: Unknown type
console.log(processValue({}));         // 输出: Unknown type

在这个示例中,processValue 函数根据传入参数的类型执行不同的操作,并返回相应的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JS魔法堂:再识Number type

Brief                                   本来只打算理解JS中0.1 + 0.2 == 0.30000000000000004的原因,但发现自己对计算机的数字表示和运算十分陌生...以下是恶补后的成果: 基础野:细说原码、反码和补码 基础野:细说无符号整数 基础野:细说有符号整数 基础野:细说浮点数   理解JS Number type背后的IEEE 754 64位双精度数值编码后...0.30000000000000004就不言而喻了,但单纯的理解了现象的本质是不够,我们需要的是如何解决这类问题,不然下次遇到同类问题我们只能同样的无力而已:(   但在寻求或自己手写工具库前,我觉得还是先了解JS...Number.NaN,返回Number type的Not-a-Number值。 Number.NEGATIVE_INFINITY,返回-Infinity。...若value不为Number type则直接返回false。 Number.isNaN([value]),判断value值是否为Not-a-Number。

2.2K50
  • 领券