您好我有一些问题需要了解以下与node.js相关的代码。
var config = {
local: {
mode: 'local',
port: 3000
},
staging: {
mode: 'staging',
port: 4000
},
production: {
mode: 'production',
port: 5000
}
}
module.exports = function(mode) {
return config[mode || process.argv[2] || 'local'] || config.local;
}
我无法理解
return config[mode || process.argv[2] || 'local'] || config.local;
这一部分。 OR运算符的工作原理和方式。
答案 0 :(得分:0)
相当于:
Color selectedColor;
请注意,var r;
if(mode && config[mode]) {
r = config[mode];
} else if(process.argv[2] && config[process.argv[2]]) {
r = config[process.argv[2]];
} else if(config['local']) {
r = config['local'];
} else {
r = config.local;
}
return r;
和config['local']
会返回相同的值,因此最后一部分(config.local
)无用。
答案 1 :(得分:0)
return config[mode || process.argv[2] || 'local'] || config.local;
编辑:在上面的代码中,在尝试访问config [key]之前,将评估封闭方括号内的所有内容。