如果var为空,如何修改变量而不会出错?

时间:2011-09-08 17:04:19

标签: javascript jquery

我正在使用以下内容进行事件跟踪:

var dataTrack = e.split(','); // split by comma

if (dataTrack !== undefined) {

    var action = dataTrack[0];
    var values = {};
    values[dataTrack[1]] = dataTrack[2];

    mpq.track(action, values);
}

如何修改dataTrack [0],dataTrack [1],dataTrack [2],如果任何dataTrack变量为空,它将不会中断? 1& 2是可选的......

由于

4 个答案:

答案 0 :(得分:2)

JavaScript中常见的习惯用法是提供默认值,如下所示:

// default to the empty string
var dataTrack0 = dataTrack[0] || '',
    dataTrack1 = dataTrack[1] || '',
    dataTrack2 = dataTrack[2] || '';

...虽然我认为更好的解决方案,在这种情况下,可能是检查数组的length

答案 1 :(得分:0)

您可能希望将length property用于数组。

var dataTrack = e.split(','); // split by comma

if (dataTrack !== undefined) {

    var action = dataTrack[0];
    var values = {};
    if(dataTrack.length > 2) {
        values[dataTrack[1]] = dataTrack[2];
    }

    mpq.track(action, values);
}

您可以添加额外的验证来检查dataTrack [1]的长度是否为> 0如果有人可能传递“value1,,value3”。

答案 2 :(得分:0)

难道你不能检查以确保它们不是空的吗?如果三元运算符为空,也可以使用三元运算符(即action == undefined?“Default”:datatrack [0];)。

答案 3 :(得分:0)

替换

 values[dataTrack[1]] = dataTrack[2];

if(dataTrack.length > 2){
 values[dataTrack[1]] = dataTrack[2];
}