JavaScript 中的数据类型判断,除了使用 typeof 操作符之外,还可以使用其他一些方法来更准确地判断变量的数据类型。以下是一些常用的方法:
1.typeof 操作符:
function getVariableType(variable) {
return typeof variable;
}
const name = "John";
console.log(getVariableType(name)); // 输出: "string"
const age = 30;
console.log(getVariableType(age)); // 输出: "number"
const isStudent = true;
console.log(getVariableType(isStudent)); // 输出: "boolean"
- instanceof 操作符:
instanceof 是 JavaScript 中的一个运算符,用于检查一个对象是否是某个特定类型的实例。它的语法是 object instanceof constructor,其中 object 是要检查的对象,constructor 是用来比较的构造函数或类。
instanceof 运算符返回一个布尔值,如果对象是指定类型的实例,则返回 true,否则返回 false。
function getVariableType(variable) {
if (variable instanceof Array) {
return "array";
} else if (variable instanceof Date) {
return "date";
} else if (variable instanceof RegExp) {
return "regexp";
} else if (variable === null) {
return "null";
} else {
return typeof variable;
}
}
var array = [1, 2, 3];
console.log(getVariableType(array)); // 输出: "array"
var date = new Date();
console.log(getVariableType(date)); // 输出: "date"
var regex = /abc/;
console.log(getVariableType(regex)); // 输出: "regexp"
var nullValue = null;
console.log(getVariableType(nullValue)); // 输出: "null"
3.Array.isArray() 方法来判断是否为数组
var array = [1, 2, 3];
console.log(Array.isArray(array)); // 输出: true
var notArray = "Hello";
console.log(Array.isArray(notArray)); // 输出: false
4.Object.prototype.toString.call() 方法:
Object.prototype.toString 是 JavaScript 中的一个方法,用于获取一个对象的字符串表示形式。它返回一个表示对象类型的字符串,格式为 [object ObjectClass]。
为了提取出具体的类型字符串,我们可以使用 slice 方法截取字符串,从第 8 个字符开始(去除 "[object "),直到倒数第 1 个字符(去除最后的 “]”)。
function getVariableType(variable) {
return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
}
var name = "John";
console.log(getVariableType(name)); // 输出: "string"
var age = 30;
console.log(getVariableType(age)); // 输出: "number"
var isStudent = true;
console.log(getVariableType(isStudent)); // 输出: "boolean"