简短的问题,我正在尝试理解本教程: http://superdit.com/2011/02/09/jquery-memory-game/
刚接触Javascript我似乎无法找到声明'=='“'的意思......我理解”==“,但不是空的双引号。
答案 0 :(得分:7)
val == ""
是与 emtpy字符串的非严格比较。如果 val 为空,0
,false
或[]
(空数组),则会评估为真:
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 === '')