javascript中==“”的含义

时间:2012-10-10 07:27:37

标签: javascript

简短的问题,我正在尝试理解本教程: http://superdit.com/2011/02/09/jquery-memory-game/

刚接触Javascript我似乎无法找到声明'=='“'的意思......我理解”==“,但不是空的双引号。

3 个答案:

答案 0 :(得分:7)

val == ""是与 emtpy字符串的非严格比较。如果 val 为空,0false[](空数组),则会评估为真:

var val = "";
console.log( val == "" ); // true

val = 0;
console.log( val == "" ); // true

val = false;
console.log( val == "" ); // true

val = [];
console.log( val == "" ); // true

您可以使用===使用严格比较,fex:

val = 0;
console.log( val === "" ); // false

答案 1 :(得分:1)

'==“”'检查空字符串。当字符串为空时它将是真的,并且当它内部有一些字符时为false。

答案 2 :(得分:0)

快速扫描代码(ctrl-F是你的朋友)很快告诉你,代码中唯一出现这样的声明的地方是:if (imgopened == ""),另一次搜索告诉我imgopened是一个邪恶的(全局)变量,它在脚本的最顶部被初始化为"",并且每次执行一些动作/函数时,它所分配的任何值都是如此。

我怀疑这是一种纸牌游戏,需要点击两个相同的imgs,在这种情况下,此var将引用当前转动的图像。如果它是空的,那么所有的img都朝下,而这个var是空的:""
换句话说:

if (imgopened == "")//=== if no card is turned
{
    //do X, most likely: turn card
}
else
{
    //do Y
}

这可以写成

if (!imgopened)
//or
if (imgopened == false)//falsy, but somewhat confusing
//or
if (imgopened == 0)//!confusing, don't use
//or, my personal favorite
if (imgopened === '')