检查是不是设置了 Javascript 布尔值? [复制]
Posted
技术标签:
【中文标题】检查是不是设置了 Javascript 布尔值? [复制]【英文标题】:Check if Javascript boolean is set? [duplicate]检查是否设置了 Javascript 布尔值? [复制] 【发布时间】:2017-05-08 12:22:16 【问题描述】:确定是否设置了 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
【问题讨论】:
undefined 是个不错的猜测。 您是在use strict
模式下还是只是普通的旧javascript? :)
【参考方案1】:
如果尚未设置值,则表示它是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
);
【讨论】:
【参考方案2】:这能解决你的问题吗?
if(required!=undefined)
【讨论】:
【参考方案3】:如果你想检查一个对象是否有特定的属性,那就是in
关键字:
'required' in params
还有hasOwnProperty
方法,如果你需要排除从原型继承的属性(你可能不适合这种情况):
params.hasOwnProperty('required')
【讨论】:
以上是关于检查是不是设置了 Javascript 布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章