使用构造函数属性来判断对象的类型:
//检查我们的数字实际上是否为字符串
if(num.constructor==String)
//如果是,则根据这个字符串解析出整数来
num=parseInt(num);
//检查我们的字符串实际上是否是数据
if(str.constructor==Array)
//如果是,则根据数据用逗号归并出字符串来
str=str.join(",");
变量的类型检查
变量 | typeof变量 | 变量.构造函数 |
{an:"object"} | object | Object |
["an","array"] | object | Array |
function(){} | function | Function |
"a string" | string | String |
55 | number | Numuber |
true | boolean | Boolean |
new User | object | User |
//一个函数可以严格维护传入函数的所有参数
<script>
function strict(types,args){
if(types.length!=args.length){
throw "Invalid number of arguments.Expected "+types.length+" received "+args.length+" insted.";
}
for(var i=0;i<args.length;i++){
if(args[i].constructor!=types[i]){
throw types[i].name+" "+args[i].constructor.name;
}
}
}
function userList(prefix,num,users){
strict([String,Number,Array],arguments);
}
userList("aa",'a',['a','b']);
</script>