📜  javascript 检查变量 var 的类型 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:44.958000             🧑  作者: Mango

JavaScript 检查变量 var 的类型

在 JavaScript 中,检查变量的类型是一项非常基础而且必要的操作。JavaScript 是一门弱类型语言,因此变量的类型可能会在运行时发生改变。在进行运算和函数调用时,需要知道变量的类型,以确保不会出现不合预期的行为。

typeof 操作符

JavaScript 中可以使用 typeof 操作符来检查变量的类型。typeof 操作符返回一个字符串,表示变量的类型。例如:

let num = 1;
console.log(typeof num); // 输出 "number"

let str = "hello";
console.log(typeof str); // 输出 "string"

let bool = true;
console.log(typeof bool); // 输出 "boolean"

let arr = [1, 2, 3];
console.log(typeof arr); // 输出 "object"

let obj = { name: "John", age: 30 };
console.log(typeof obj); // 输出 "object"

需要注意的是,typeof null 返回的是 "object"。这是一个已知的 JavaScript 的 bug。因此,在检查变量是否为 null 时,需要单独检查。

instanceof 操作符

JavaScript 中的每种数据类型都是一个构造函数的实例。例如,numberstringbooleanarray 等都是构造函数。因此,我们可以使用 instanceof 操作符来检查变量是否为某个构造函数的实例。例如:

let num = 1;
console.log(num instanceof Number); // 输出 false

let str = "hello";
console.log(str instanceof String); // 输出 false

let bool = true;
console.log(bool instanceof Boolean); // 输出 false

let arr = [1, 2, 3];
console.log(arr instanceof Array); // 输出 true

let obj = { name: "John", age: 30 };
console.log(obj instanceof Object); // 输出 true

需要注意的是,不能使用 instanceof 操作符检查基本数据类型,比如 numberstringboolean。因为基本数据类型不是对象,而 instanceof 操作符判断的是对象的继承关系。

typeof 和 instanceof 常用的应用
检查是否为数字
function isNumber(variable) {
  return typeof variable === "number" && !isNaN(variable);
}

console.log(isNumber(1)); // 输出 true
console.log(isNumber("hello")); // 输出 false
console.log(isNumber(NaN)); // 输出 false
检查是否为数组
function isArray(variable) {
  return variable instanceof Array;
}

console.log(isArray([1, 2, 3])); // 输出 true
console.log(isArray("hello")); // 输出 false
console.log(isArray({})); // 输出 false
检查是否为对象
function isObject(variable) {
  return variable instanceof Object;
}

console.log(isObject({ name: "John", age: 30 })); // 输出 true
console.log(isObject([1, 2, 3])); // 输出 true
console.log(isObject("hello")); // 输出 false
console.log(isObject(1)); // 输出 false
总结

JavaScript 中检查变量的类型是一项非常基础而且必要的操作。通过使用 typeofinstanceof 操作符,可以检查变量的类型。在实际开发中,常用于检查是否为某种类型的数据,以确保不会出现不合预期的行为。