gpt4 book ai didi

javascript - || 的使用{} 在 JavaScript 中

转载 作者:行者123 更新时间:2023-12-03 13:28:28 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What does the construct x = x || y mean?

(12 个回答)


9年前关闭。




我在 Javascript 中看到了这样的内容:

   function name (secret) {
secret = secret || {};

我在任何地方都找不到确切的含义 secret = secret || {};

这是否意味着使用传递的参数或对象的值创建全局变量?

你什么时候使用它?什么时候没有参数通过?

最佳答案

这是什么意思

如果变量 secret是假的(以下之一):

  • false
  • 0
  • '' (空字符串)
  • null
  • undefined
  • NaN

  • ..然后将其设置为 {} (一个空对象 - 它与 new Object() 相同)。

    替代代码

    也可以这样写:
    if (!secret) secret = {};

    但由于它更长,大多数人更喜欢上面的。

    为什么?

    此解决方案很有用,因为 javascript 没有默认函数参数。

    例如,PHP 中的示例可能如下所示:
    <?php
    function foo($bar = 'default') {
    echo $bar;
    }
    ?>

    在 JS 中可能是
    function foo(bar) {
    bar = bar || 'default';
    console.log(bar);
    }
    foo(); //default
    foo(NaN); //default
    foo(undefined); //default
    foo(null); //default
    foo(false); //default
    foo(0); //default
    foo(''); //default
    foo('something'); //something
    foo(12); //12
    foo(1.2); //1.2

    如果我只想设置默认值,如果没有设置其他内容怎么办?

    如果你 仅限 想检查没有值(没有假值),那么你可以使用 typeof JS中的函数:
    function foo(bar) {
    if (typeof bar == 'undefined') bar = 'default';
    console.log(bar);
    }
    foo(); //default
    foo(undefined); //default
    foo(NaN); //NaN
    foo(null); //null
    foo(false); //false
    foo(0); //0
    foo(''); //(empty string)
    foo('something'); //something
    foo(12); //12
    foo(1.2); //1.2

    关于javascript - || 的使用{} 在 JavaScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016235/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com