为什么此函数无法计算给定参数的数据类型
Why does this function fail to evaluate the data-type of a given argument?
function isDataType(dataType, obj) {
return Object.prototype.toString.call(obj) == '[object' + dataType + ']';
}
var arr = [];
alert(isDataType("Array", arr)); // alerts 'false' which is false
当我使 obj 等于数组并使数据类型评估为数组时,它仍然说 false。有没有办法解决这个问题?谢谢。
是的
- 在查找数组的数据类型时,不要使用该方法查找数据类型。请改用arr instanceof Array
.
您在 '[object
之后缺少一个空格。 然后,代码的计算结果应为 true。
但是,您应该使用 instanceof 来确定对象是否属于特定类型。
你不是只需要另一个空间吗?
'[object ' + dataType + ']'
^-- a space here
正如其他人已经提到的那样,这不是测试数据类型的好方法。
function is(type, obj) {
var clas = Object.prototype.toString.call(obj).slice(8, -1);
return obj !== undefined && obj !== null && clas === type;
}
is('String', 'test'); // true
is('String', new String('test')); // true
function whatsit(what){
if(what== null) return String(what);
what= what.constructor;
var Rx= /function's+([^('s]+)'s*'(/,
tem= String(what).match(Rx);
if(tem) return tem[1];
return String(what);
}
相关文章:
- javascript解释器如何理解变量的数据类型
- 从查询字符串参数推断出正确的数据类型
- 为什么不'我们在javascript中使用函数参数的数据类型
- 基于数据类型的编辑框的汇总列表
- 如何降低此函数的复杂性,该函数根据数据类型进行回调
- 比较和分配数据类型的困难
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- Highcharts系列.数据数据类型限制
- JS:执行'失败;getComputedStyle'在'窗口':参数的类型不是'
- 如何在php循环中显示隐藏的数据类型
- 如何在谷歌电子表格脚本中测试范围参数的类型
- 如何从标签数据类型=“;无线电”;
- 如何使用 Java 脚本从 csv 文件中查找每列的数据类型
- 在 Javascript 中更改数据类型
- 当数据类型为XML时,如何将url参数传递给AJAX jquery
- 一个额外的未知参数,带有数据类型“脚本”的 ajax 请求
- 测试函数参数的数据类型的正确性
- 同一个函数参数能接受不同的数据类型吗?
- 为什么此函数无法计算给定参数的数据类型