私は 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 を確認しましたが、その論理演算子リストにはこれが含まれていません。これがスペルミスで、ブラウザーが単純に != としてカウントするのか、それとも他の意味があるのかはわかりません。また、これが実際に単一の論理演算子なのか、それとも ! のような組み合わせなのか疑問に思っていました。+ ==?