Hay tantos Solo tenga en cuenta que, si bien existen y parecen geniales, probablemente no necesiten verse en ningún sitio web de producción.
Intercambiar variables sin una variable temporal: [1]
var a = 2 var b = 4 var b = [a, a = b] [0]
A menos que tenga un proyecto realmente gigante con decenas o cientos de miles de líneas de código, o una entrevista de código, no haga esto. Una variable temporal no es lo peor del mundo.
- ¿Qué te frustra sobre el futuro del desarrollo front-end?
- ¿Qué es importante aprender en el desarrollo web?
- Cómo elegir una empresa de diseño web para usted
- Cómo hacer una página de inicio de sesión Java
- ¿Cuáles son algunas aplicaciones recomendadas para planificar y / o implementar un diseño de juego simple?
Hay locura por hacer con la coerción de tipo:
var a = + []; // a == 0 var b = falso + verdadero; // b == 1 var c = verdadero + verdadero; // c == 2 var d =! 0; // d == verdadero
Solo, por favor, no uses esto en ningún lado. Este tipo de coerción de tipo es útil para concursos de códigos y hackatones. Es absolutamente ilegible en cualquier otro lugar.
Puede escribir JavaScript real y funcional que use la coerción de tipo [2]. Es una cosa del mal. Las personas que ofuscan su JavaScript son malvados o imbéciles. No seas tampoco.
No tiene que declarar var
en la parte superior de una función:
En lugar de
función (a) { var b = 1; }
podrías escribir
función (a, b) { b = 1; }
Esto se debe a que el nombre de la variable se declara como un argumento. Le ahorra tener que escribir mucho var, pero podría confundir a cualquiera que esté mirando su código. Podrían pensar que en realidad estás pasando estos argumentos a tu función en alguna parte.
Mi favorito: [math] .call () [/ math]
Supongamos que desea iterar sobre las propiedades de un objeto.
var listitems = document.querySelectorAll ('li');
Tu podrías intentar:
para (i = 0; i <listitems.length; i ++) { var listitem = listitems [i]; // hacer cosas }
O bien, puede usar .call()
simplemente forEach
este chico malo:
[] .forEach.call (listitems, function (listitem) { //hacer cosas })
call()
simplemente te permite aplicar tu propio this
. Entonces, en el ejemplo anterior, en lugar de una matriz vacía como this
, estás usando listitems
, en su lugar.
[editar]
No puedo evitarlo Un ejemplo más con .call()
Digamos que quieres que inviertas una cuerda. Bueno, invertir cosas es cosa de matrices. Entonces, ¿por qué no tomar el poder mágico de una matriz y llamarlo en una cadena?
var hey = 'hola mundo'; var yeh = [] .reverse.call (hey.split ('')). join (''); // "dlrow olleh"
call()
es útil cuando desea utilizar métodos que generalmente no existen en las propiedades [3].
Notas al pie
[1] jed / 140bytes
[2] Página en korelogic.com
[3] Function.prototype.call ()