小甲鱼 发表于 2024-7-7 17:07:32

typeof -- 返回一个字符串,表示操作数的数据类型

typeof -- 返回一个字符串,表示操作数的数据类型

函数概述

typeof是一个一元运算符,返回一个字符串,表示操作数的数据类型。它可以用于确定变量或表达式的类型。


函数语法

typeof operand

参数解析


参数 含义
operand 任意表达式或变量,typeof 将会返回该操作数的数据类型。


返回值

typeof 运算符可能的返回值包括:


[*]"undefined":如果变量未定义。
[*]"boolean":如果变量是布尔值。
[*]"number":如果变量是数值。
[*]"string":如果变量是字符串。
[*]"object":如果变量是对象或 null。
[*]"function":如果变量是函数。
[*]"symbol":如果变量是 Symbol。
[*]"bigint":如果变量是 BigInt 类型。


基本用法

// 数字
console.log(typeof 42);// 输出 "number"

// 字符串
console.log(typeof 'hello');// 输出 "string"

// 布尔值
console.log(typeof true);// 输出 "boolean"

// 未定义的变量
let a;
console.log(typeof a);// 输出 "undefined"

// 对象
let obj = { key: 'value' };
console.log(typeof obj);// 输出 "object"

// 数组(也是对象)
let arr = ;
console.log(typeof arr);// 输出 "object"

// 函数
function example() {}
console.log(typeof example);// 输出 "function"

// null
console.log(typeof null);// 输出 "object"

// Symbol
let sym = Symbol();
console.log(typeof sym);// 输出 "symbol"

// BigInt
let bigInt = 123n;
console.log(typeof bigInt);// 输出 "bigint"

注意事项

typeof operand 和 typeof(operand):

这两种写法实际输出的结果是一致的,都没问题。

但更推荐第一种写法,因为后者容易让人误以为 typeof 是一个函数(其实它是一个运算符)。


null 的特殊情况:

typeof null 返回 "object",这是一个被认为是 JavaScript 的设计缺陷。

尽管 null 不是一个对象,但它的类型被错误地返回为 "object":

console.log(typeof null);// 输出 "object"

数组的类型:

typeof 运算符无法区分数组和普通对象。

它会将数组识别为 "object"。要检查一个变量是否为数组,可以使用 Array.isArray() 方法:

let arr = ;
console.log(typeof arr);// 输出 "object"
console.log(Array.isArray(arr));// 输出 true

页: [1]
查看完整版本: typeof -- 返回一个字符串,表示操作数的数据类型