JavaScript:if var?其中var不是bool

时间:2016-10-12 10:54:01

标签: javascript if-statement coffeescript boolean

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

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

据我了解,currentSrc必须是在if语句中检查true或false的bool,但后来在链接中集成了它是一个字符串。 if var?检查var是否存在?这不是一种在JS中检查它的错误方法吗?

2 个答案:

答案 0 :(得分:1)

  

currentSrc必须是在if语句中检查true或false的bool

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

&#13;
&#13;
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"); }
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

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

不确定downvote,但我个人觉得这个技术很有用,主要是因为我打开Chrome,如果我不确定布尔评估,我只需打开控制台并键入我正在检查的内容......例如。键入!!-1,在这种情况下,它会返回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