一、获取变量数据类型1、使用 typeof 运算符 获取变量数据类型在 JavaScript 中 , 使用 typeof 运算符 可以 获取一个变量的 数据类型 , typeof 表达式 返回的是一个 表示 变量类型 的 字符串 , 如 :
number : 表示 数字类型 ;string : 表示 字符串类型 ;undefined : 表示 未定义类型 ;boolean : 表示 布尔类型 ;object : 表示 复杂对象类型 ;代码示例 :
代码语言:javascript代码运行次数:0运行复制let num = 10;
console.log(typeof num); // 输出 : number完整代码示例 :
代码语言:javascript代码运行次数:0运行复制
let num = 10;
console.log(typeof num); // 输出 "number"
let str = "Hello";
console.log(typeof str); // 输出 "string"
let obj = {};
console.log(typeof obj); // 输出 "object"
let boolVar = true;
console.log(typeof boolVar); // 输出 "boolean"
let undefVar;
console.log(typeof undefVar); // 输出 "undefined"
let nullVar = null;
// 这是 JavaScript 的一个历史错误 , null 不是对象类型 , 而是 空类型
console.log(typeof nullVar); // 输出 "object"
let funcVar = function() {};
console.log(typeof funcVar); // 输出 "function"
let symVar = Symbol('symbol');
// ES6 及更高版本
console.log(typeof symVar); // 输出 "symbol"
展示效果 :
2、判断 空类型对于 空类型值 null , 使用 typeof 运算符 获取 null 值的类型 , 会返回类型为 object , 这是一个JavaScript的历史错误 ;
要检测一个变量是否为 null , 直接 使用 variable === null 进行判断 ;
代码示例 :
代码语言:javascript代码运行次数:0运行复制 let nullVar = null;
// 这是 JavaScript 的一个历史错误 , null 不是对象类型 , 而是 空类型
console.log(typeof nullVar); // 输出 : object
console.log(nullVar === null); // 输出 : true完整代码示例 :
代码语言:javascript代码运行次数:0运行复制
let nullVar = null;
// 这是 JavaScript 的一个历史错误 , null 不是对象类型 , 而是 空类型
console.log(typeof nullVar); // 输出 : object
console.log(nullVar === null); // 输出 : true
展示效果 :
3、判断 数组类型对于 数组类型 变量 , 使用 typeof 运算符 获取 数组变量 的类型 , 会返回类型名称为 object ;
要检测一个变量是否为 数组 , 需要 使用 Array.isArray(arrVar) 进行判断 ;
代码示例 :
代码语言:javascript代码运行次数:0运行复制 // 数组类型变量
let arrVar = [];
console.log(typeof arrVar); // 输出 object
console.log(Array.isArray(arrVar)); // 输出 true完整代码示例 :
代码语言:javascript代码运行次数:0运行复制
// 数组类型变量
let arrVar = [];
console.log(typeof arrVar); // 输出 object
console.log(Array.isArray(arrVar)); // 输出 true
展示效果 :
4、获取 对象 具体类型使用 variable instanceof ClassName 可以 检测 特定类型的 对象 是否是 指定的类型 ;
使用 Object.prototype.toString.call(variable) 来 获取更详细的对象类型信息 ;
代码示例 :
代码语言:javascript代码运行次数:0运行复制 // 检测 特定类型的 对象 是否是 指定的类型
let date = new Date();
// 判断 date 变量是否是 Date 类型
console.log(date instanceof Date); // 输出 : true
// 输出 date 变量 的 具体类型
console.log(Object.prototype.toString.call(date)); // 输出 : [object Date]完整代码示例 :
代码语言:javascript代码运行次数:0运行复制
// 检测 特定类型的 对象 是否是 指定的类型
let date = new Date();
// 判断 date 变量是否是 Date 类型
console.log(date instanceof Date); // 输出 : true
// 输出 date 变量 的 具体类型
console.log(Object.prototype.toString.call(date)); // 输出 : [object Date]
展示效果 :