Javascript 简明教程
JavaScript - typeof Operator
The typeof Operator
JavaScript 中的 typeof 运算符是一个单目运算符,用于获取特定变量的数据类型。它放在单个操作数之前,该操作数可以是任何类型。它返回一个字符串值,指示其操作数的数据类型。JavaScript 包含原始数据类型和非原始数据类型。
JavaScript 中有七种原始或基本数据类型 - 数值、字符串、布尔值、undefined、null、符号和 BigInt。还有一种称为对象的复合数据类型。Object 数据类型包含三个子数据类型 - 对象、数组和日期。
Datatypes Returned by typeof Operator
以下是 typeof 操作符的返回值列表。
JavaScript 中有七种基本数据类型——数字、字符串、布尔值、BigInt、undefined、null 和 Symbol。typeof 操作符对于识别这些基本数据类型非常有用。
typeof 操作符对所有基本值返回相同的类型,除了 null。它对 null 值返回“object”。
对于对象、日期和数组,它返回“object”作为数据类型。
对于函数和类,它返回“function”作为数据类型。
让我们使用 typeof 操作符一个接一个地识别这些数据类型。
typeof 10; // returns 'number'
typeof 'Hello World'; // returns 'string'
typeof true; // returns 'boolean'
typeof {name:"Tutorialspoint"}; // returns 'object'
typeof function foo(){};// returns 'function'
typeof undefined; // returns 'undefined'
typeof null; // returns 'object'
typeof Symbol(); // returns 'symbol'
typeof 10n; // returns 'bigint'
JavaScript typeof Operator to Check Number Type
在 JavaScript 中,数字类型表示数字值。JavaScript 对所有数字使用浮点表示形式。JavaScript typeof 操作符对所有类型的数字(例如整数、浮点数、零、无穷大、NaN 等)返回“number”。
typeof 10; //returns "number";
typeof -10; //returns "number";
typeof 0; //returns "number";
typeof 10.20; //returns "number";
typeof Math.LN10; //returns "number";
typeof Infinity; //returns "number";
typeof NaN; //returns "number";
typeof Number('1'); //returns "number";
typeof Number('hello'); //returns "number";
Example
下面的示例演示如何使用 typeof 操作符检查数字数据类型。
<html>
<body>
<p> Using typeof operator to check number data type </p>
<div id="output"></div>
<script>
let num = 42;
document.getElementById("output").innerHTML = typeof num;
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
JavaScript typeof Operator to Check String Type
字符串表示字符序列。typeof 操作符有助于识别字符串变量。JavaScript typeof 操作符对所有类型的字符串(例如空字符串、字符字符串、字符串单词、多行字符串等)返回“string”。
typeof "10"; //returns "string";
typeof ""; //returns "string";
typeof "Hello World"; //returns "string";
typeof String(10); //returns "string";
typeof typeof 2; //returns "string";
JavaScript typeof Operator to Check Boolean Type
布尔值表示 true 或 false。typeof 操作符对布尔变量返回布尔值。
typeof true; //returns "boolean";
typeof false; //returns "boolean";
typeof Boolean(10); //returns "boolean";
JavaScript typeof Operator to Check Symbol Type
Symbol 在 ES6 中引入,提供创建唯一标识符的方法。在符号上使用 typeof 操作符会返回“symbol”。
typeof Symbol(); //returns "symbol";
typeof Symbol("unique values"); //returns "symbol";
JavaScript typeof Operator to Check Undefined and Null
“undefined”类型表示没有值。“null”类型表示没有任何对象值。在不确定变量上使用 typeof 操作符时,它会返回“undefined”。令人惊讶的是,在 null 上使用 typeof 操作符也会返回“object”,这是 JavaScript 中一个已知的怪癖。
typeof undefined; //returns "undefined";
typeof null; //returns "object";
请注意,typeof 操作符对未声明的变量和声明但未赋值的变量都会返回“undefined”。
JavaScript typeof Operator to Check Object Type
JavaScript typeof 运算符为“object”返回所有类型对象,例如 JavaScript 对象、数组、时间、正则表达式等。
const obj = {age: 23};
typeof obj; //returns "object";
const arr = [1,2,3,4];
typeof arr; //returns "object";
typeof new Date(); //returns "object";
typeof new String("Hello World"); //returns "object";
JavaScript typeof Operator to Check Function Type
函数在 JavaScript 中是一等公民。JavaScript typeof 运算符为“function”返回所有类型的函数。有趣的是,它还为类返回“function”。
const myFunc = function(){return "Hello world"};
typeof myFunc; //returns "function";
const func = new Function();
typeof func; //returns "function";
class myClass {constructor() { }}
typeof myClass; // returns "function";
JavaScript typeof Operator to Check BigInt Type
typeof 运算符为 BigInt 数返回“bigint”。BigInt 值是太大而不适合用数字基本类型表示的数字值。
typeof 100n; // returns "bigint"
JavaScript typeof Operator in Real-Time Development
例如,开发人员从 API 获取数据。如果只有一个字符串,API 返回字符串响应,而对于多个字符串,API 返回字符串数组。在此场景中,开发人员需要检查响应的类型是字符串还是数组,如果它是数组,他们需要遍历数组中的每个字符串。
Example
在下面的示例中,我们检查“response”变量的类型并相应打印其值。
<html>
<body>
<script>
const response = ["Hello", "World!", "How", "are", "you?"];
if (typeof response == "string") {
document.write("The response is - ", response);
} else {
document.write("The response values are : ");
// Traversing the array
for (let val of response) {
document.write(val, " ");
}
}
</script>
</body>
</html>
JavaScript Arrays and typeof Operator
数组尽管是 JavaScript 中的一种对象类型,但具有与 typeof 运算符不同的行为。
let numbers = [1, 2, 3];
typeof numbers; // Output: 'object'
在使用 typeof 运算符时,数组返回“object”,因此为了精确检测数组,通常最好使用 Array.isArray() 。