我知道基本使用'?'三元运算符。 window.URL应该是表达式,应该返回true或false。但在这种情况下,它返回一个字符串。
如何评估此表达式。
var createSrc = window.URL ? window.URL.createObjectURL : function(stream) {return stream;};
答案 0 :(得分:2)
只要字符串不为空,就会对true
进行评估,在这种情况下,字符串为false
。
虽然看起来window.URL
在这种情况下不是字符串。它似乎是一个对象,如果undefined
也将评估为false
。
您的陈述的作用是检查window.URL
是否存在。如果是,那么它将createSrc
分配给window.URL.createObjectURL
的值,我假设它可能是一个函数。否则,它将分配三元运算符的第三部分function(stream) {return stream;}
。
这意味着,createSrc
应始终是一个函数,调用它不会产生错误。