代码:
/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
module.exports = freeGlobal;
这是一段判断当前环境global对象是否可以使用。
疑问:为什么最后还要加&& global判断,这不是多余吗?
解答:
首先这是一个赋值语句,最后一个&& global其实不是判断作用,而是赋值作用。
&&如果放在赋值语句后面,那么最后一个为真的值会赋值给等号左边变量。