这些语句是什么意思|| {} 在此 javascript 代码中
What is the meaning of these statements || {} in this javascript code
我刚开始 javascript 并且正在阅读模块模式。
我一直在查看此页面:http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html 无法弄清楚 || 是什么{} 语句的意思。
写这段代码的地方不少:(UTIL || {}));
谁能解释一下这些语句的含义和作用?
我假设||表示或 - 但在这种情况下我不太确定。
这是文章结论中的代码。第二行和倒数第二行是让我感到困惑的代码示例。
var UTIL = (function (parent, $) {
var my = parent.ajax = parent.ajax || {};
my.get = function (url, params, callback) {
// ok, so I'm cheating a bit :)
return $.getJSON(url, params, callback);
};
// etc...
return parent;
}(UTIL || {}, jQuery));
表示:如果||
之前的对象为null,则使用新的空对象{}
代替。
在此处阅读有关运算符的更多信息:Is there a "null coalescing" operator in JavaScript?
如果未设置,这用于定义变量。
您可以这样做以确保设置了一个值!
例如:
function iHaveParameters(param1, param2) {
param1 = param1 || {} //empty object
param2 = param2 || "This should be a string"
}
当然如前所述,它只会在第一个变量为 null 时调用第二个值。
在您的情况下,它实际上只是在未设置变量时才设置变量,这意味着如果您包含脚本 3000 次,则变量仍将仅定义一次以避免 CPU。这样你就可以要求加载一个函数,例如
{} 是声明空对象的一种简短方式,与使用 [] 声明空数组的方式相同。
var my = parent.ajax = parent.ajax || {};
表示如果对象 parent.ajax
存在则将其设置为值。如果不是,请改为设置一个空对象。
如前所述,它是一个空 JavaScript 对象。
我想不太明显的是为什么你会那样做。如果对象恰好是 null
或 undefined
,一个常见的原因是让您的代码安全。考虑向您传递一个对象并想要访问它的属性的示例:
function myFunc(obj) {
console.log(obj.name);
}
没关系,除非 obj
是 undefined
,在这种情况下您的代码会崩溃。
更安全的方法通常是:
function myFunc(obj) {
console.log((obj || {}).name);
}
现在,如果 obj
是 undefined
,则会创建一个新的空对象。获取其中的 .name
是安全的,只需 return undefined
.
这显然是一个过度简化的示例,但该技术被广泛用于使代码更短且更易于阅读(与在各处放置 if
语句相比,测试和分支更少)。
我刚开始 javascript 并且正在阅读模块模式。
我一直在查看此页面:http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html 无法弄清楚 || 是什么{} 语句的意思。
写这段代码的地方不少:(UTIL || {}));
谁能解释一下这些语句的含义和作用?
我假设||表示或 - 但在这种情况下我不太确定。
这是文章结论中的代码。第二行和倒数第二行是让我感到困惑的代码示例。
var UTIL = (function (parent, $) {
var my = parent.ajax = parent.ajax || {};
my.get = function (url, params, callback) {
// ok, so I'm cheating a bit :)
return $.getJSON(url, params, callback);
};
// etc...
return parent;
}(UTIL || {}, jQuery));
表示:如果||
之前的对象为null,则使用新的空对象{}
代替。
在此处阅读有关运算符的更多信息:Is there a "null coalescing" operator in JavaScript?
如果未设置,这用于定义变量。 您可以这样做以确保设置了一个值!
例如:
function iHaveParameters(param1, param2) {
param1 = param1 || {} //empty object
param2 = param2 || "This should be a string"
}
当然如前所述,它只会在第一个变量为 null 时调用第二个值。
在您的情况下,它实际上只是在未设置变量时才设置变量,这意味着如果您包含脚本 3000 次,则变量仍将仅定义一次以避免 CPU。这样你就可以要求加载一个函数,例如
{} 是声明空对象的一种简短方式,与使用 [] 声明空数组的方式相同。
var my = parent.ajax = parent.ajax || {};
表示如果对象 parent.ajax
存在则将其设置为值。如果不是,请改为设置一个空对象。
如前所述,它是一个空 JavaScript 对象。
我想不太明显的是为什么你会那样做。如果对象恰好是 null
或 undefined
,一个常见的原因是让您的代码安全。考虑向您传递一个对象并想要访问它的属性的示例:
function myFunc(obj) {
console.log(obj.name);
}
没关系,除非 obj
是 undefined
,在这种情况下您的代码会崩溃。
更安全的方法通常是:
function myFunc(obj) {
console.log((obj || {}).name);
}
现在,如果 obj
是 undefined
,则会创建一个新的空对象。获取其中的 .name
是安全的,只需 return undefined
.
这显然是一个过度简化的示例,但该技术被广泛用于使代码更短且更易于阅读(与在各处放置 if
语句相比,测试和分支更少)。