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]