javascript - 为什么|| {} 在父[当前部分] = 父[当前部分] || {}

标签 javascript

这个 JavaScript 语法是什么? 父级[当前部分] = 父级[当前部分] || {};

特别是这部分|| {}

取自此 JavaScript 代码(位于 http://elegantcode.com/2011/01/26/basic-javascript-part-8-namespaces/ )

// Creates a namespace
function namespace(namespaceString) {
    var parts = namespaceString.split('.'),
        parent = window,
        currentPart = '';

    var length = parts.length;
        for (var i = 0; i < length; i++) {
            currentPart = parts[i];
            parent[currentPart] = parent[currentPart] || {};
            parent = parent[currentPart];
         }

     return parent;
 }

最佳答案

JavaScript 中的 || 运算符的工作方式与许多其他语言略有不同。在 JavaScript 中,它计算出第一个“真实”值,允许“失败”行为。

示例:

var a = false;
var b = "asdf";
alert(a || b); //alert box with "asdf" since a was false

var c = true;
var d = "asdf";
var e = false;
alert(c || d || d); //alert box with true. d and e were never evaluated, so "asdf" isn't returned. This is called "short-circuiting" operation.

&& 运算符的工作原理类似,如果一切都为 true,它会计算第一个“falsey”值或最后一个“truthy”值:

var a = true;
var b = "asdf";
alert(a && b); //alert box with "asdf"
alert(b && a): //alert box with true

var c = 6;
var d = 0;
alert(c && d); //alert box with 0
alert(d && c); //alert box with 0

关于javascript - 为什么|| {} 在父[当前部分] = 父[当前部分] || {},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20979460/

相关文章:

javascript - Bootstrap scroll spy 不适用于 javascript 实现或 <body> 元素内容

javascript - 检查客户端是否已接受安全异常

javascript - 递归函数如何处理||运算符(operator)?

javascript - 如何根据其他值检查单选按钮?

javascript - 如何创建一个 jQuery 选择,它是另一个 jQuery 选择的随机样本?

javascript - 有人可以解释一下 reduce 方法在这个函数式 JavaScript 挑战中是如何工作的吗?

javascript - 添加然后删除 <p>

javascript - 带有本地存储的便利贴

javascript - 为什么文本在 firebase 中不显示

javascript - 我如何对我的数据关闭 ="modal"产生两种效果;一个重新加载父页面,而另一个不加载