JavaScript评估速记问题

JavaScript评估速记问题,javascript,boolean,Javascript,Boolean,可能非常简单,但我不确定如何正确编写以下评估和分配,其中我尝试将配置值分配给小部件,并在未设置配置时设置回退默认值。如果以我尝试的方式不可能,我可以在设置值之前返回到If/else。谢谢你的指点 console.log(config); // Outputs {autoplay: false} $(el).slick({ // Sets autoplay to true instead of false, as it evaluates it as n

可能非常简单,但我不确定如何正确编写以下评估和分配,其中我尝试将配置值分配给小部件,并在未设置配置时设置回退默认值。如果以我尝试的方式不可能,我可以在设置值之前返回到If/else。谢谢你的指点

console.log(config);

    // Outputs
    {autoplay: false}

    $(el).slick({
        // Sets autoplay to true instead of false, as it evaluates it as not null (I think)
        autoplay: config.autoplay || true,
        // If i set it this way, it works with the correct value as not being evaluated, but then i have no fallback value
        //autoplay: config.autoplay
    });
$(el).光滑({
autoplay:config.autoplay!=null?config.autoplay:true
});
这将检查值是否既不是
null
也不是
未定义


由于自动播放为false,
false | | true
将始终导致true。

如果您只需要一个默认值,也可以使用此选项

let config
常量默认值={autoplay:true}
配置={}
log({…默认值,…配置})
config={autoplay:true}
log({…默认值,…配置})
配置={autoplay:false}
log({…默认值,…配置})
//内联
配置={}
log({autoplay:“default”,…config})
//多重
配置={arg2:“替换”,arg10:“扩展”}

log({arg1:1,arg2:2,arg3:3,…config})
If
config.autoplay??true
不是选项,请尝试
(config.hasOwnProperty(“autoplay”)?config.autoplay:true)
。这是否回答了您的问题? — 第一批谷歌搜索结果中的“js默认布尔值”。