36

Javascript変数が未定義かどうかをテストしようとしています。

「信じられない」というアラートを最初に受け取らなければ、predQuery[preId]の値が「未定義」になるとは思わないことがわかります。しかし、私はよくそうするので、私の発言は

 predQuery[preId]=='undefined') 

未定義の要素と正しく一致していません。

if((predQuery.length < preId) || (predQuery[preId]=="") || (predQuery[preId]=='undefined')){
   alert("its unbelievable");
   alert(predQuery[preId]);
   queryPreds[variables] = preId;
   queryObjs[variables] = objId;
   predQuery[preId] = variables;
}
else {
    alert(predQuery[preId]);
   var predIndex = predQuery[preId];
   queryPreds[predIndex] = preId;
   queryObjs[predIndex] = objId;
}

必要に応じてコードを追加できます。

4

7 に答える 7

73

array[index] == 'undefined'配列インデックスの値を文字列「undefined」と比較します。タイプを比較する、を
探している可能性があります。typeof array[index] == 'undefined'

于 2010-04-20T06:55:28.660 に答える
14

配列インデックスに文字列が含まれていることを確認しています"undefined"。次のいずれかのtypeof演算子を使用する必要があります。

typeof predQuery[preId] == 'undefined'

または、undefinedグローバルプロパティを使用します。

predQuery[preId] === undefined

グローバルプロパティは書き込み可能であり、他の値に変更できるため、最初の方法の方が安全です。undefined

于 2010-04-20T06:56:18.253 に答える
8
predQuery[preId]=='undefined'

文字列 に対してテストしています'undefined'; typeofこのテストを、文字列を返すテストと混同しました。あなたはおそらく特別な価値に対してテストすることを意味しますundefined

predQuery[preId]===undefined

一般的に望ましくない一致を避けるために、厳密な等式演算子に注意してくださいnull==undefined

undefinedただし、値を取得する方法は2つあります。メンバーでpreIdないか、メンバーであるpredQueryが値が特別な値に設定されているかのいずれかです。多くの場合、それが存在するかどうかを確認したいだけです。その場合、演算子がより適切です。undefinedin

!(preId in predQuery)
于 2010-04-20T07:44:39.733 に答える
4

ローマへの(多くの)方法は他にもあります:

//=>considering predQuery[preId] is undefined:
predQuery[preId] === undefined; //=> true
undefined === predQuery[preId] //=> true
predQuery[preId] || 'it\'s unbelievable!' //=> it's unbelievable
var isdef = predQuery[preId] ? predQuery[preId] : null //=> isdef = null

乾杯!

于 2010-04-20T07:22:08.753 に答える
2

確認してください

if (predQuery[preId] === undefined)

厳密な等号演算子を使用します。比較演算子を参照してください

于 2010-04-20T06:55:12.497 に答える
2

try:typeof(predQuery[preId])=='undefined'
またはより一般的に:typeof(yourArray[yourIndex])=='undefined'
「undefined」をundefinedと比較しているため、falseが返されます=)

于 2010-04-20T06:56:16.110 に答える
1

このコードは非常にうまく機能します

function isUndefined(array, index) {
    return ((String(array[index]) == "undefined") ? "Yes" : "No");
}
于 2016-03-06T14:44:34.973 に答える