js类型检查
检查对象类型的一种方式是参考所有JavaScript对象所共有的一个称为constructor的属性。该属性是对一个最初用来构造此对象的函数的引用。
1 //检查我们的数字是否其实是一个字符串
2 if ( num.constructor == String )
3 //如果是,则将它解析成数字
4 num = parseInt( num );
5 //检查我们的字符串是否其实是一个数组
6 if ( str.constructor == Array )
7 //如果是,则用逗号连接该数组,得到一个字符串
8 str = str.join(',');
2 if ( num.constructor == String )
3 //如果是,则将它解析成数字
4 num = parseInt( num );
5 //检查我们的字符串是否其实是一个数组
6 if ( str.constructor == Array )
7 //如果是,则用逗号连接该数组,得到一个字符串
8 str = str.join(',');
表1显示了对不同类型对象分别使用我所介绍的两种方法进行类型检查的结果。表格的第一列显示了我们试图找到其类型的对象。每二列是运行typeof Variable(Variable 为第一列所示的值)。此列中的所有结果都是字符串。最后,第三列显示了对第一列包含的对象运行Variable.constructor 所得的结果。些列中的所有结果都是对象。
表1. 变量类型检查
———————————————————————————————Variable typeof Variable Variable.constructor
———————————————————————————————
{an:"object"} object Object
["an","array"] object Array
function(){} function Function
"a string" string String
55 number Number
true boolean Boolean
new User() object User
——————————————————————————————————
使用一个变量的constructor 作为对象类型的引用可能是最简单的类型检查方式。当你想要确定精确吻合的参数数目的类型传进了你的函数时,严格的类型检查在这种可能会大有帮助。