该代码用于验证图像或单元格选择。我的问题是 什么是!==用于以下函数:
function checkSelected() {
var cellList,
selectedCell,
imgList,
selectedImg,
i
cellList = document.getElementById("imgTable")
cellList = cellList.getElementsByTagName("td")
imgList = document.getElementById("b_list")
imgList = imgList.getElementsByTagName("img")
if (cellList[0].style.border.indexOf("7px outset") !== -1) { selectedCell = cellList[0] }
if (selectedCell === undefined || selectedImg === undefined) { return }
selectedCell.style.backgroundImage = "url(" + selectedImg.src + ")"
selectedCell.firstChild.style.visibility = "hidden"
selectedCell.style.border = "1px solid"
selectedImg.style.border = "1px solid"
}
答案 0 :(得分:5)
!==
是一个更严格的不等式,与执行类型强制的!=
相比,不对操作数执行任何类型强制。
如果操作数不相等和/或不是相同类型,则!==
将返回true。
相反,如果操作数相等,则!=
返回true。如果操作数的类型不同,JavaScript将尝试将两个操作数转换为适合比较的形式。如果操作数是对象,那么JavaScript将比较它们的引用(内存地址)。最好的证明如下:
"3" != 3; // returns false because JavaScript will perform
// type coercion and compare the values
"3" !== 3; // returns true because the first operand is a
// string whereas the second is an integer. Since
// they are of different types, they are not equal.
有关详细信息,请查看MDN上的Comparison Operators。
答案 1 :(得分:4)
这意味着“不严格等于”,而!=
意味着“不等于”。
检查平等的方法有两种:==
和===
,分别是“等于”和“严格等于”。要查看确切的区别,请查看this table。
!=
和!==
只是对这些操作的相应否定。例如,a !== b
与!(a === b)