数据类型和JavaScript ...真是个噩梦

时间:2010-02-17 19:45:00

标签: javascript types jquery

所以..

我将数据传递给处理字符串和数字的函数。

我希望能够传递一组值并检测每个值的类型。

row[0] = 23;
row[1] = "this is a string... look at it be a string!";
row[2] = true;

$.each(row, function(){
  alert(typeof(this));
  //alerts object
});

是否可以检测给定行中的“实际”数据类型?

2 个答案:

答案 0 :(得分:5)

尝试

var row = [ 23, "this is a string", true ];

$.each(row, function (index,item) {
    alert(typeof(item));
});

// Alerts "number", "string", "boolean"

我尽可能避免在回调中使用“this”,并且使用显式参数通常更清晰,更可预测。

答案 1 :(得分:3)

@Rich建议了最好的解决方案 - 使用传递给回调的值作为参数。引自jQuery doc

  

也可以通过this关键字访问该值,但Javascript将始终将this值包装为Object,即使它是一个简单的字符串或数字值。

this.valueOf()可能会帮助您“回归”原始价值。但仍然 - 在这个具体的例子中,最好使用作为函数参数传递的值。