1
は、私は次のようなものがあります。のjavascript:期待trueまたはfalseが、取得数
var val = "string";
var testVal = val && val.length;
を私はtestVal
がtrue
またはfalse
のいずれかであることを期待するが、それは文字列の長さです。なぜこれがわからないのですか?
は、私は次のようなものがあります。のjavascript:期待trueまたはfalseが、取得数
var val = "string";
var testVal = val && val.length;
を私はtestVal
がtrue
またはfalse
のいずれかであることを期待するが、それは文字列の長さです。なぜこれがわからないのですか?
論理&&
演算子は型キャストを実行しません。それが形成する式は、このオペランドが誤っている場合は左のオペランドに、それ以外の場合は右のオペランドに評価されます。
あなたが明示的にブール値に変換する必要があります。
var testVal = !!(val && val.length);
最初に私はdownvoteするつもりだったが、その後私はあなたが他の方法で回避番号を取得する代わりに、真、偽とされませんでした実現。 – Goose
@ Juhanaオブジェクトを返す論理演算子に固有のものであり、この問題のある人の将来の検索では出現しないので、より一般的な重複がありますか? – Goose
@Gooseその質問のリンクされた質問から1つを探すことができます。質問をした人はあまりにも良い答えを選んだが、[最も多くの票を得た答え](http://stackoverflow.com/a/8569966/502381)では一般的な問題を説明している。 – JJJ