js类型检查实现代码

复制代码 代码如下:

  //检查我们的数字是否其实是一个字符串

  if ( num.constructor == String )

  //如果是,则将它解析成数字

  num = parseInt( num );

  //检查我们的字符串是否其实是一个数组

  if ( str.constructor == Array )

  //如果是,则用逗号连接该数组,得到一个字符串

  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 作为对象类型的引用可能是最简单的类型检查方式。当你想要确定精确吻合的参数数目的类型传进了你的函数时,严格的类型检查在这种可能会大有帮助。