Estoy mirando un libro para html 5 e incluye este tid bit de js. ¿Qué significa doble exclamación?doble exclamación en un valor de retorno en javascript
return ! ! document.createElement('video').canPlayType;
Estoy mirando un libro para html 5 e incluye este tid bit de js. ¿Qué significa doble exclamación?doble exclamación en un valor de retorno en javascript
return ! ! document.createElement('video').canPlayType;
El operador !
niega, y el secundario !
niega el resultado de la negación inital. Esto básicamente teclea lo que está en el lado derecho en un booleano (verdadero o falso).
!false // true
!!false // false
lo tanto, si se define la forma entonces el function
que es Truthy, será typecasted en true
.
document.createElement('video').canPlayType
Así que lo anterior devuelve una función. No queremos una función, queremos un booleano explícito, por lo que lo negamos dos veces y dado que function
no es falso (0, nulo, falso, cadena vacía, NaN), se devuelve verdadero para los navegadores que admiten este método.
!!document.createElement('video').canPlayType // true
Si no se admite el método, el navegador volverá undefined
. !undefined
es verdad, y !true
es falso, por lo !!document.createElement('video').LOL
regresará false
no 'document.createElement ('video'). CanPlayType' ¿devuelve un booleano? ¿O es para si eso es 'nulo' y luego' !! (nulo) = falso'? – hunter
!! (null) == falso –
@hunter - document.createElement ('video'). CanPlayType devolverá indefinido si el navegador no admite la etiqueta de video. –
El doble signo de exclamación es un truco JavaScript para volver verdadero/falso independientemente de la entrada. En su ejemplo, si un navegador no es compatible con la etiqueta de video, volverá indefinido. ! indefinido es verdad. Entonces, indefinido es falso. Si el navegador admite video, se devolverá verdadero. !! verdad también es verdad. Esto le ahorra tener que manejar el caso de indefinido.
Me encanta, doble negativos útiles en la programación de idiomas. Y mi maestra de inglés dijo que nunca usa doble negativo. "No quiero hacer nada". se convierte en una oración que quizás tenga sentido ahora. :) –
Puedo ser una idea intentar primero buscar Stackoverflow antes de preguntar. http://stackoverflow.com/questions/784929/what-is-the-operator-in-javascript – KooiInc
perdón por eso. Hice una búsqueda en "javascript de doble exclamación" No se detuvo nada. – steve