如何推断“config.headers = config.headers ||{};".
How to infer "config.headers = config.headers || {};"
我没有得到以下语句的操作过程。
var x = x || {};
我认为它的作用是
如果 x 存在,则将其分配给变量 x,如果不分配 null。"未定义 ||空?
为什么我们需要后面的" ||空"部分?
课程链接或很少的帮助将是 grrreat!
null
和undefined
不会在任何地方进入这个。
如果x
是"假"值,则x
设置为值{}
。 {}
是一个空对象文本。
你可能知道||
和&&
在条件下是OR和AND。它们通过"短路评估"工作,这意味着一旦任何表达式(从最左侧开始)计算结果为 true
,||
将停止计算并返回最后一个表达式。(换句话说:由于只需要一个表达式为真,整个化合物的计算结果为真,我们可以在它们中的任何一个为真时立即停止。另一方面,一旦任何表达式计算为false
,&&
就会停止计算(因此,一旦其任何部分为假,整个化合物就不可能为真)。换句话说,只要条款true
,&&
就会继续评估条款,只要条款false
,||
。
现在,我们不仅可以在条件中使用这些运算符,还可以在代码中的任何位置使用这些运算符。例如a && b();
等效于 if 子句if (a) b();
。同样,||
可用于"不是":a || b();
等同于 if (!a) b();
。
由于 ||
返回左起计算结果为 true
的第一个项的值,我们可以在右侧使用它来分配默认值(以防前一项的计算结果为 false
):
a = b || c;
相当于
if (b) {
a = b;
}
else {
a = c;
}
我们可以使用任意数量的术语来执行此操作:
var api = window.webAPI || window.webkitWebAPI || window.mozWebAPI;
(这将评估假设的"window.webAPI",或者,如果未定义,则查找"webkitWebAPI",然后查找"mozWebAPI"。
在var x = x || {};
的情况下,构造只是确保x
是某物(显然是类似对象的东西),如果不是,则使其成为空对象({}
)。它等效于 if 子句
var x;
if (!x) x = {};
那么,我们为什么要使用它呢?显然,当第一次遇到时,它会将变量x
初始化为空对象。但它这样做是有条件的:如果之前设置了x
,它会保留x
的值。此外,由于我们在同一子句中将x
声明为变量,因此我们确保不会命中未声明的标识符(在另一行上保存额外的声明)。
- What does requirejs.config() do?
- 从Middleman中的Javascript访问config.rb
- 使用AddThis-config-data_ga_property向两个Google Analytics配置文件报告
- JS vs JSON for config in Node js
- XMLHttpRequest HTTP Headers
- Web.config: Values for ClientValidationEnabled and Unobtrusi
- EmberJS config prod img src url
- 在Require.js中,如果Require()是一个函数,那么Require.config()是如何存在的
- 在Asp.net的空网站中,如何改变"Web.config”;使内容(.js)文件显示在浏览器中,而不是下载
- RequireJS Config映射整个目录
- 我没有'我不了解require.js是如何处理加载路径的.每次定义模块时是否需要使用require.config
- django-ckeditor:存储config.js的位置
- AngularJs在app.config中的回调中配置路由
- 通过特定的Web.Config目录提供URL重写
- log4javascript web.config
- Angular.config未被调用
- 如何在OrientDb-server-config.xml中启用CORS
- 重构 require.config.js 文件
- config routeProvidar on angularJS
- 如何推断“config.headers = config.headers ||{};".