在js脚本中,如果要检测一个变量的数据类型有很多的种方法,下面就来简单的介绍几种常用的,大家参考一下吧!

js typeof 方法检测变量数据的类型

示例代码:

console.log(typeof 'ssss');
// string
console.log(typeof 123);
// number
var obj = {"name" : "mochu" , "host" : "feiniaomy.com"};
console.log(typeof obj);
// object
var array = [];
array[1] = 'feiniaomy.com';
console.log(typeof array);
// object
console.log(typeof false);
// boolean
console.log(typeof function(){});
// function
console.log(typeof undefined);
// undefined

注意:使用 typeof 运算法来检测变量类型时,对象类型与数组类型的变量都会显示为 object

js Object.prototype.toString 检测变量的类型

js 中的 Object.prototype.toString 方法可以检测变量的数据类型,可以使用它的 apply() 方法与 call() 方法

Object.prototype.toString.apply() 使用方法

console.log(Object.prototype.toString.apply('sss'));
// [object String]
console.log(Object.prototype.toString.apply(123));
// [object Number]
var obj = {"name" : "mochu" , "host" : "feiniaomy.com"};
console.log(Object.prototype.toString.apply(obj));
// [object Object]
var array = ['mochu','feiniaomy.com'];
console.log(Object.prototype.toString.apply(array));
// [object Array]
console.log(Object.prototype.toString.apply(false));
// [object Boolean]
var mochu  = function(){};
console.log(Object.prototype.toString.apply(mochu));
// [object Function]
console.log(Object.prototype.toString.apply(undefined));
// [object Undefined]

Object.prototype.toString.call() 使用方法

console.log(Object.prototype.toString.call('sss'));
// [object String]
console.log(Object.prototype.toString.call(123));
// [object Number]
var obj = {"name" : "mochu" , "host" : "feiniaomy.com"};
console.log(Object.prototype.toString.call(obj));
// [object Object]
var array = ['mochu','feiniaomy.com'];
console.log(Object.prototype.toString.call(array));
// [object Array]
console.log(Object.prototype.toString.call(false));
// [object Boolean]
var mochu  = function(){};
console.log(Object.prototype.toString.call(mochu));
// [object Function]
console.log(Object.prototype.toString.call(undefined));
// [object Undefined]

js constructor 属性检测变量的数据类型的方法

var s = 'feiniaomy.com';
console.log(s.constructor);
// String() { [native code] }
var ss = 134;
console.log(ss.constructor);
// Number() { [native code] }
var obj = {"name" : "mochu" , "host" : "feiniaomy.com"};
console.log(obj.constructor);
// Object() { [native code] }
var array = ['mochu','feiniaomy.com'];
console.log(array.constructor);
// Array() { [native code] }
console.log((false).constructor);
// Boolean() { [native code] }
var mochu  = function(){};
console.log(mochu.constructor);
// Function() { [native code]

注意:constructor 是不能判断 null 与 undefined 数据类型的!

jq 测试变量数据类型的方法

jquey 中的 type() 函数可以输出 js 变量的数据类型,并返回小写形式的类型名称。

示例代码:

var s = 'feiniaomy.com';
console.log($.type(s));
// string
var ss = 134;
console.log($.type(ss));
// number
var obj = {"name" : "mochu" , "host" : "feiniaomy.com"};
console.log($.type(obj));
// object
var array = ['mochu','feiniaomy.com'];
console.log($.type(array));
//  array
console.log($.type(false));
// boolean
var mochu  = function(){};
console.log($.type(mochu));
// function
console.log($.type(null));
// null
console.log($.type(undefined));
// undefined