JavaScript: 如果变量?其中 var 不是 bool

JavaScript: if var? where var is no bool

我不理解videojs播放器的一些代码:

if currentSrc?
    $(".video-js").replaceWith(
      "<div class='unsupported'><a href='#{currentSrc}'>Download</a></div>")

据我了解,currentSrc必须是bool才能在if语句中检查真假,但后来在link中集成它是一个字符串。 if var? 是否仅检查 var 是否存在?这不是在 JS 中检查它的错误方法吗?

currentSrc has to be a bool to be checked for true or false in the if statement

不正确。 JavaScript 是一种动态类型语言。一个非零长度的字符串(任何 URL 都是)将是一个真值。

var foo = "";
var bar = "some value";

if (foo) { console.log(foo); } else { console.log("foo is false"); }
if (bar) { console.log(bar); } else { console.log("bar is false"); }

查看 javascript 如何转换布尔值的一个很好的简单方法是使用双重否定 !!.

不确定否决票,但我个人觉得这种技术很有用,主要是因为我打开了 Chrome,如果我不确定布尔值求值,我只需打开控制台并输入我想要的检查..例如键入 !!-1 ,在这种情况下它将 return true,一些其他语言可能将其视为 false

例如

console.log( "''", !!'' );  //false
console.log( "hello2", !!'hello' );  //true
console.log( "0", !!0 );  //false
console.log( "'0'", !!'0' );  //true
console.log( "1", !!1 ); //true
console.log( "true", !!true ); //true
console.log( "null", !!null ); //false
console.log( "undefined", !!undefined ); //false