2016-12-22 11 views
0

JavaScriptのブール値が設定されているかどうかを判断するための最良の方法は何ですか?ここに私が何をしてきたかの例があります。それは少し過大なようだが、私は、値が実際にそれは本当ではないだけであれば、設定されているかどうかを確認する必要があります。Javascriptブール値が設定されているかどうかを確認しますか?

function doSomething (params, defaults) { 

    params = params || {}; 
    defaults = defaults || {}; 

    var required = (params.required === true || params.required === false) 
     ? params.required 
     : (defaults.required === true || defaults.required === false) 
      ? defaults.required 
      : true; 

    if (required) { 
     // perform logic 
    } 
} 
+0

)https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/undefined([未定義]は良い推測でしょう。 –

+0

あなたは 'use strict'モードですか、それとも普通の古いjavascriptですか? :) – Icepickle

答えて

2

値は、それがundefinedだということに設定されていない場合。さらにポイント自宅を駆動するために

function printStuff(params) { 
 
    if (params.hello !== undefined) { 
 
    console.log(params.hello); 
 
    } else { 
 
    console.log('Hello, '); 
 
    } 
 
} 
 

 
printStuff({ }); 
 
printStuff({ 
 
    hello: 'World' 
 
});

は、ここでは、ブール値で使用することができる方法です。

function schrodinger(params) { 
 
    if (params.dead === undefined) { 
 
    console.log('The cat is neither dead nor alive'); 
 
    } else if (params.dead) { 
 
    console.log('The cat is dead'); 
 
    } else if (!params.dead) { 
 
    console.log('The cat is alive'); 
 
    } 
 
} 
 

 
schrodinger({ 
 
    // Not specified 
 
}); 
 

 
schrodinger({ 
 
    dead: true 
 
}); 
 

 
schrodinger({ 
 
    dead: false 
 
});

0

これはあなたの問題を解決しますか?

if(required!=undefined) 
2

あなたは、オブジェクトが特定のプロパティを持っているかどうかを確認したい場合は、それがinキーワードです:

'required' in params 

あなたは(あなたのプロトタイプから継承されたプロパティを除外するために必要がある場合hasOwnProperty方法もありますたぶん)このような場合のためにしないでください。

params.hasOwnProperty('required') 
関連する問題