¿Cuál es el mejor código JavaScript que has escrito?

1. Abra la consola: presione – Ctrl + Shift + J
2. Asegúrese de desplazarse y explorar el área hasta la parte inferior (DOM debe estar completamente cargado).
3. Pegue los guiones y presione Intro para ver que ocurre la magia.
4. Si no eres desarrollador, no te preocupes. ¡Estas secuencias de comandos nunca te harán daño de ninguna manera!

1. Script para aceptar todas las solicitudes de amistad en Facebook.

var r = document.querySelectorAll('.ruResponseButtons ._42ft._4jy0._4jy3._4jy1'); for (i=0 ; i< r.length; i++){ r[i].click(); }

2. Script para invitar a todos los amigos a Me gusta en su página de Facebook.

var r = document.querySelectorAll('._6a._6b .uiButton._1sm .uiButtonText'); for (i=0 ; i< r.length; i++){ r[i].click(); }

3. Script para PEDIR para responder a todos en QUORA

var r = document.querySelectorAll('.e_col .ask'); for (i=0 ; i< r.length; i++){ r[i].click(); }

PD: hay extensiones disponibles para realizar tareas tan simples, pero estos scripts son realmente útiles para realizar trabajos rápidos.
Comente a continuación si tiene alguna sugerencia o si estos scripts no funcionan. Los hice alrededor de 6 meses atrás.

Una aplicación simple pero rápida y potente que te permite descargar los subtítulos que faltan de tus archivos de película con solo arrastrar y soltar .

Caracteristicas

  • Fácil e intuitivo
    Simplemente arrastre y suelte sus archivos de película o carpetas que contienen archivos de película para descargar los subtítulos.
  • Nombre de archivo independiente
    SubGenesis utiliza el hash del archivo de video en lugar del nombre del archivo para solicitar la API SubDB. No importa cómo nombre el archivo de video, SubGenesis obtendrá el subtítulo adecuado para usted.
  • Recursivo
    Arrastre y suelte su carpeta de películas y descargará los subtítulos para todos los archivos de video dentro de ella o en sus subdirectorios.
  • Multiplataforma
    A partir de ahora, SubGenesis se ejecuta en Windows y MacOS . Se pueden esperar futuras versiones para Linux, Android e iOS.
  • Totalmente libre
    SubGenesis es gratis, y siempre lo será. Y sí, sin anuncios.

MaxeonInc / subgénesis

Mi github

Implementación

Utiliza Node.js para el back-end y Electron como marco de la aplicación.

Descargue el último binario para su plataforma desde la página de lanzamientos:

Lanzamientos

PD: Sigue siendo Alpha. Los comentarios serían apreciados.

Un script que produce una infografía sobre el usuario de Quora.

El código se puede encontrar en skrishnan22 / Quora-Infograph.

Por ejemplo,

Quincy Larson

Gayle Laakmann McDowell

James Altucher

Todo lo que necesita hacer es ir al perfil de usuario en Quora y pegar el código en la consola del navegador. El tiempo que toma varía según el número de respuestas y al final la infografía se abrirá en una nueva pestaña.

Me gusta este (de una de mis otras respuestas), principalmente porque es muy simple y visualmente entretenido:

(en vivo en Simple Canvas Plot – JSFiddle)

 var canvas = document.getElementById('myCanvas'), ctx = canvas.getContext('2d'), width = canvas.width, height = canvas.height, plot = function plot(fn, range) { var widthScale = width / (range.X[1] - range.X[0]), heightScale = height / (range.Y[1] - range.Y[0]), first = true, xFnVal, // X in function space. ySSVal; // Y in screen space. ctx.beginPath(); for (var x = 0; x < width + 2; x += 2) { xFnVal = (x / widthScale) - range.X[0]; ySSVal = height - (fn(xFnVal) - range.Y[0]) * heightScale; if (first) { ctx.moveTo(x, ySSVal); first = false; } else { ctx.lineTo(x, ySSVal); } } ctx.strokeStyle = "red"; ctx.lineWidth = 3; ctx.stroke(); }; plot( function (x) { return Math.sin(x) + Math.sin(x * 8) / 4; }, { X: [0, Math.PI * 4], Y: [-2, 2] } ); 

Resultado:

No sé cuán GRANDE fue la codificación, pero funcionaron muy bien y son algunos de los que destacan debido a la satisfacción que obtuve al escribirlos.
Esto fue en los primeros días de JavaScript y yo era editor en IRT.org, respondiendo como ahora, preguntas de JS para cualquiera que preguntara.

Un estudiante japonés había escrito un motor de búsqueda para su campus para ubicar los dormitorios de las personas, pero necesitaba un teclado en pantalla para poder escribirlo en una pantalla táctil pegada al exterior de la entrada. Creé dicho teclado (Netscape 3.1 si no recuerdo mal) con elementos de formulario, algo que nunca había visto en otro lugar. Sin embargo, este no fue el final de la historia, ya que unos meses más tarde, un neurólogo me preguntó si había algo que pudiera crear para las víctimas de accidente cerebrovascular convalecientes que les permitiera escribir con una gran bola de seguimiento que había conectado a la computadora. Y sí, solo tenía el teclado en pantalla que podía usar.

Un tipo del JPL de la NASA quería tener una gran pantalla de la luna y, al pasar el mouse sobre los cráteres y los puntos de aterrizaje, se mostraría alguna información en otro lugar. Agregué mouseovers a un mapa de imágenes; creo recordar que fue Netscape solo porque MSIE 3 no podía manejar JS en imágenes hasta IE 3.2.

Quizás no sea el mejor , pero realmente me gusta este código.
Permite un registro tan versátil con una implementación tan corta.

Wizek / logFactory.js

  // Registro de superpoderes para AngularJS.
 
 angular.module ('logFactory', ['ng'])
 
 .value ('logFactory_whiteList', /.*/)                                                                                               
 //.value('logFactory_whiteList ', /!|.*Ctrl|run/)                                                                                   
 .value ('logFactory_piercingMethods', {warn: true, error: true})                                                                      
                                                                                                                                   
 .factory ('logFactory', ['$ log', 'logFactory_whiteList', 'logFactory_piercingMethods', function ($ log, whiteList, piercing) {      
   piercing = piercing ||  {}                                                                                                        
   whiteList = whiteList ||  /.*/                                                                                                    
                                                                                                                                   
   función de retorno (prefijo, parentLog) {                                                                                            
     var log = parentLog ||  $ log                                                                                                    
     var match = prefix.match (whiteList)                                                                                            
                                                                                                                                   
     función e (fnName) {                                                                                                           
       if (! log [fnName]) {                                                                                                          
         fnName = 'log'                                                                                                             
       }       
                                                                                      
       return (perforación [fnName] || coincidencia)                                                                                           
         ?  log [fnName] .bind (log, '[' + prefijo + ']')                                                                                
         : angular.noop                                                                                                             
     }                                                                                                                              
                                                                                                                                   
     regreso (                                                                                                                       
       {debug: e ('debug')                                                                                                          
       , información: e ('información')                                                                                                           
       , log: e ('log')                                                                                                            
       , advertir: e ('advertir')                                                                                                           
       , error: e ('error')                                                                                                          
       }                                                                                                                            
     )                                                                                                                              
   }                                                                                                                                
 }])

Creé un módulo pub-sub completo para Angular que tenía una API prometedora, con funciones como entonces , una vez , siguiente , etc.

Las funciones facilitaron el uso de los resultados de eventos que ya se han disparado, así como los resultados de eventos que aún no se han disparado, y le permiten hacerlo solo una vez o de manera perpetua.

Luego, después de aprender más sobre Angular, me di cuenta de que podía dejar de lado casi todos los casos de uso que estaba tratando de encontrar con el módulo simplemente conectando mis servicios directamente a mis controladores. Entonces, lo tiré.

Aún así, estaba bastante emocionado de que funcionara, y fue bastante inteligente en cómo manejó la suscripción y la cancelación de la suscripción (una de las funciones, creo que era la siguiente, tenía que crear una nueva función que llamaría a la devolución de llamada de cancelación de suscripción; había un cierto nivel de indirección en las tareas que lo hacía parecer mágico, al menos a primera vista).

Un estudiante japonés había escrito un motor de búsqueda para su campus para ubicar los dormitorios de las personas, pero necesitaba un teclado en pantalla para poder escribirlo en una pantalla táctil pegada al exterior de la entrada. Creé dicho teclado (Netscape 3.1 si no recuerdo mal) con elementos de formulario, algo que nunca había visto en otro lugar. Sin embargo, este no fue el final de la historia, ya que unos meses más tarde, un neurólogo me preguntó si había algo que pudiera crear para las víctimas de accidente cerebrovascular convalecientes que les permitiera escribir con una gran bola de seguimiento que había conectado a la computadora. Y sí, solo tenía el teclado en pantalla que podía usar

Guía de Java

Ciertamente, este no es el mejor código, pero como eres un usuario de quora, tengo un código que cuando se pega en tu consola solicitará respuestas de todas las personas en la sección de solicitud de respuesta. Para hacer que esto funcione, después de hacer una pregunta, obtendrá un menú de solicitud de respuesta en su pantalla. Haga clic en “Ver más o buscar”. Ahora pegue el código que figura a continuación en su consola.

for (var i = 0; i {document.getElementsByClassName (“request_button”) [i] .click (); }

Escribí un generador de estrellas de revisión que me gusta. Soy un gran admirador del código limpio y escaso.

Tenga en cuenta que he pirateado el prototipo de número para crear una función .times. ¡Muy útil!

  función glassdoorStarGenerate (calificación) {
       var fraccional = calificación% 1;
       var fulls = Math.floor (calificación);
       var vacías = 5 - completos - 1;
       var s = '';
       var star = " ";

       fulls.times (function () {
         s + = " " + star + "";
       });

       // estrella fraccional
       if (fraccional> 0) {
         s + = "  " + estrella + "";
       }

       empties.times (function () {
         s + = " " + star + "";
       });

       devoluciones
     }

     // función .times
     Number.prototype.times = function (val) {
       var i = -1;
       mientras que (++ i 

¡Tengo un blog sobre dominar Javascript aquí!

Javascript maestro! Aprende y comprende.

Lo primero es que no hay fin para mejorar “Mejor de lo que podría ser”, ya que, desde mi punto de vista, un mejor código se puede medir en muchos términos como Memoria, Mantenimiento, Tiempo de ejecución, Claro, Convención de nomenclatura, etc.
Creo que si alguien tiene en cuenta todos estos escenarios al escribir cualquier código, entonces ese código debe ser mejor.
así que la mayoría de las veces tengo en cuenta todos estos escenarios mientras escribo cualquier código. 🙂

Escribí un bot de póker completo para un juego de póquer basado en la web. Después de configurarlo, funcionó completamente solo. Me fue mejor que a mí ganar: no soy un gran jugador de póker, y la probabilidad de matemática que estaba haciendo para cada mano fue suficiente para darle una ventaja.

He creado Tambola (bingo) usando JavaScript y almacenamiento de sesión – JavaScript – Tablero Tambola – Código fuente – Almacenamiento de sesión, Aleatorio

Programa de configuración de direcciones IP

control de voz en javascript y socket.io para reproducir videos de youtube en tiempo real.

No siempre escribo javascript, pero cuando lo hago contiene algo como:
<% = javascript_include_tag params [: controller]%> o <% = stylesheet_link_tag params [: controller]%>

Código que funcionó y fue razonablemente documentado.

alerta (‘prueba’)

while(true) 'I LOVE MY PARENTS!';

// Quizás común, pero sincero