我正在重新开始 Web 开发,并且最近一直在尝试了解 jscript 的细微差别。我正在浏览构建在 Three.JS 之上的 THREEx 扩展库的源代码,并注意到了这个功能
THREEx.KeyboardState.prototype.pressed = function(keyDesc)
{
var keys = keyDesc.split("+");
for(var i = 0; i < keys.length; i++){
var key = keys[i];
var pressed;
if( THREEx.KeyboardState.MODIFIERS.indexOf( key ) !== -1 ){
pressed = this.modifiers[key];
}else if( Object.keys(THREEx.KeyboardState.ALIAS).indexOf( key ) != -1 ){
pressed = this.keyCodes[ THREEx.KeyboardState.ALIAS[key] ];
}else {
pressed = this.keyCodes[key.toUpperCase().charCodeAt(0)];
}
if( !pressed) return false;
};
return true;
}
我特别关注这里的行:
if( THREEx.KeyboardState.MODIFIERS.indexOf( key ) !== -1 ){
我不熟悉这个 !== 运算符。我检查了 w3schools,他们的逻辑运算符列表没有包含这个。我不确定这是否拼写错误,浏览器只是将其视为 != 或者它是否具有其他含义。另外我想知道这实际上是一个逻辑运算符还是某种组合,例如!+ ==?