检查是不是设置了 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 布尔值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

多维布尔数组检查Javascript中是不是全部为真

无法重置布尔值 - Javascript

检查javascript布尔奇怪的行为

如何在 Javascript 中比较字符串和布尔值?

tkinter Checkbutton 小部件返回错误的布尔值

如何在 javascript 中检查此布尔哈希图是不是为空? [复制]