JSLint insiste en que mi uso del algo exotic tilde operator en el ejemplo siguiente es inesperado. Lo que me pregunto es si esto es una limitación de JSLint. o modo estricto? o ¿qué más me estoy perdiendo?JSLint no espera mis tildes
(function() {
'use strict';
if (~'foo'.indexOf('bar')) {
return 'wild accusations';
}
}());
Además, ¿por qué no debería usar el operador de tilde de aspecto simple en lugar del ejemplo más complejo a continuación? Seguramente debe haber una buena razón para no hacerlo.
if ('foo'.indexOf('bar') >= 0) { … }
Hey, eso es algo que yo no sé. – MrBoJangles
Debe habilitar 'Tolerar operadores bit a bit' (' ~ 'es un operador bit a bit). Una razón por la que no lo uso: no creo que sea tan común y más difícil de entender (pero podría ser solo yo). No solo requiere la comprensión del operador en sí, sino también del número * representación *, es decir, que '-1' se representa con todos los bits establecidos en' 1' (y por lo tanto el complemento es '0' ->' falso') . –
Así que como ~ es en modo bit NO, y en JS 0-> ¡¡¡VERDADERO! 0-> FALSO, y solo ~ -1-> 0 ... listo –