utilizar utiliza que puede programar para paginas funciona ensayo empezar como caracteristicas basico javascript programming-languages

utiliza - lo basico de javascript



¿Qué deben saber todos los programadores de JavaScript? (30)

  1. Sabiendo que hay una vida con y sin with() y dónde trazar la línea.
  2. Puede crear errores personalizados con la instrucción throw para detener deliberadamente el tiempo de ejecución de javascript.

¿Hay un conjunto de cosas que todo programador de JavaScript debería saber para poder decir "Yo sé JavaScript"?


  1. Familiarícese con al menos una biblioteca de Javascript (Jquery, Prototype, etc.).

  2. Aprenda cómo usar las herramientas de depuración de los principales navegadores (MSIE 7-8, Firefox, Chrome, Safari)

  3. Lea sobre la industria: el sitio web de Douglas Crockford es un tesoro oculto, mientras que Ajaxian.com es un buen blog para mantenerse al tanto de ideas nuevas, interesantes y extrañas para Javascript. Hay una serie de otros recursos, pero esos son los que más me han ayudado.


¡Que Javascript no es algo que se pueda aprender en una hora!


¿Qué debe saber cada codificador javascript?

¿Qué tal, puedo apagar sus esfuerzos con 2 clics. Así que proporcione un respaldo si es posible.


... sobre Google Web Toolkit , lo que significa que su proyecto javascript probablemente podría desarrollarse de una manera mucho más conveniente.


..que javascript no es java :)

Muchas, muchas personas que comienzan con el desarrollo de sitios web me han dicho que javascript es simplemente java!


Aprender un idioma realmente bien y comprender sus diversas peculiaridades proviene de la experiencia (años). Si quisiera ser un mejor programador, yo diría, comprender los patrones de diseño, cómo y cuándo usarlos y / o incluso cuándo los está utilizando sin darse cuenta. Arquitectura técnica y experiencia de usuario.

Conocer el idioma (JavaScript) significa que puede seleccionar cualquier marco y usarlo a voluntad. Inevitablemente, tendrá que sumergirse en el código fuente, y si todo lo que sabe es la sintaxis de un marco o 2 o 3, no irá muy lejos. Al decir eso, ingresar en el código fuente de algunos marcos diferentes es probablemente una de las mejores maneras de ver cómo se puede usar JavaScript. Intentando pasar por el código en Firebug o Web Inspector, luego verifique la documentación de JavaScript, especialmente los documentos de Mozilla y Webkit, para obtener una mayor comprensión de lo que está viendo.

Entendiendo la diferencia entre Programación Orientada a Objetos y Funcional, que JavaScript es una mezcla sexy de los dos y cuándo y cómo usar ambos para crear una base de código asesina y aplicaciones asombrosas te harán un mejor programador de JavaScript.

Simplemente leyendo algunos libros, especialmente las "partes buenas" de Crockford, que solo presentan sus opiniones sobre lo que es bueno en JavaScript, mientras que omitir la mayor parte de las partes IMPRESIONANTES de JavaScript lo pondrá en el lugar equivocado.

Revisar el código escrito por alguien como Thomas Fuchs, por otro lado, te dará mucha más información sobre el poder de escribir JavaScript increíble y eficiente.

Tratar de memorizar algunos errores o WTF tampoco ayudará mucho, lo resolverá si comienza a codificar y revisar el código de una biblioteca / marco, especialmente uno comentado, para ver por qué han usado ciertos propiedades / valores y no otros por qué y cuándo es bueno usar operandos y operadores específicos, esto es todo lo que hay en el código del uso de la estructura. ¿Qué mejor que aprender por ejemplo? : ^)



Comprender las cosas escritas en Javascript de Crockford : The Good Parts es una suposición bastante buena de que una persona es un programador de JS decente.

Puedes saber cómo usar una buena biblioteca como JQuery y aún no saber las partes ocultas de Javascript.

Otra nota es herramientas de depuración en varios navegadores. Un programador de JS debe saber cómo depurar su código en diferentes navegadores.

Oh! ¡¡Y saber JSLint lastimará totalmente tus sentimientos !!


Dado que JS es un lenguaje funcional, un programador de JS decente debe poder escribir el combinador en Y y explicar cómo funciona desde el principio.


Después de leer todo lo anterior, también es perfectamente correcto aprender Javascript utilizando un marco como jQuery. La verdad es que es la primera forma en que mucha gente eligió a JS en primer lugar. No hay vergüenza en eso.


En Javascript, el rendimiento importa.

No hay un compilador inteligente para optimizar su código, por lo que debe tener más cuidado al escribir código javascript que lenguajes como C #, Java ...



Ese javascript es el lenguaje más ampliamente implementado en el mundo. (Probablemente)



JavaScript no admite la separación de palabras clave de retorno y declaraciones de retorno con caracteres de nueva línea como el siguiente código (o pruébelo en mi página jsFiddle )

function foo() { return { bar: ''something'' }; } $(function() { document.write(foo()); });

No entiendo por qué JavaScript no admite este estilo porque es mucho más fácil leer un código fuente de JavaScript muy complejo en comparación con el estilo predeterminado de JavaScript.

PD. He escrito JavaScript casi 6 años. Pero acabo de encontrar este error conmigo mismo cuando intento ejecutar la siguiente función. Siempre devuelve indefinido. Cuando uso el depurador y entro en esta función, todo funciona bien. Creo que debería ser el peor error de programación en mi vida.

function JqGridInlineEditor_GenerateTool(cellvalue, options, rowObject, disableEdit, disableDelete) { return (!disableEdit ? ''<a class="button edit" href="javascript: void(0);" onclick="JqGridInlineEditor_EditRow(this, /'{0}/');return false;" title="{2}"><img src="{1}" alt="{2}" /></a>''.format(options.rowId, getUrl(''~/Content/Icons/Edit.gif''), ''Click here to Edit or /nDouble-click row to edit.'') : '''') + (!disableDelete ? ''<a class="button delete" href="javascript: void(0);" onclick="JqGridInlineEditor_DeleteRow(this, /'{0}/');return false;" title="{2}"><img src="{1}" alt="{2}" /></a>''.format(options.rowId, getUrl(''~/Content/Icons/Delete.png''), ''Click here to Delete or /nSelect row and then press Delete'') : '''') + (!disableEdit ? ''<a class="button save" style="display:none" href="javascript: void(0);" onclick="JqGridInlineEditor_SaveRow(this, /'{0}/');return false;" title="{2}"><img src="{1}" alt="{2}" /></a>''.format(options.rowId, getUrl(''~/Content/Icons/Save.png''), ''Click here to Save or /nPress Enter'') : '''') + (!disableEdit ? ''<a class="button cancel" style="display:none" href="javascript: void(0);" onclick="JqGridInlineEditor_RestoreRow(this, /'{0}/');return false;" title="{2}"><img src="{1}" alt="{2}" /></a>''.format(options.rowId, getUrl(''~/Content/Icons/Cancel.png''), ''Click here to Cancel or /nPress Esc'') : ''''); }



Los objetos de Javascript y funcionan como ciudadanos de primera clase , devoluciones de llamada , no para olvidar eventos y luego JQuery .


No sabes JavaScript si no lo sabes:

  1. Cierres
  2. Herencia basada en prototipos
  3. El patron del modulo
  4. El W3C-DOM
  5. Cómo funcionan los eventos

Objetos literales porque son muy bonitos de escribir.


Para saber que Javascript originalmente se llamaba LiveScript y el prefijo ''Java'' se adjuntó con fines de marketing, no porque Java y Javascript estén relacionados (que no lo están).

Ah, y por ser propietario de cualquier versión de "Javascript: The Definitive Guide" de David Flanagan (esta información se encuentra en la página 2).

... y por apreciar a los que han ido antes al tratar de ofuscar el documento de Internet Explorer 4. Todos [] y los documentos.layers [] de Netscape Navigator 4 antes de que los gustos de Jquery eliminaran el dolor.

EDITAR:

Como @Kinopiko señala que JavaScript se llamó proyecto Mocha originalmente ( algunas fuentes también consideran que se llamó proyecto LiveWire), pero en general se acepta que el lenguaje (escrito por Brendan Eich) fue lanzado como LiveScript antes de que se adoptara el prefijo Java en lanzamiento a principios de 1996.


Que puede ser deshabilitado.



Sabe javascript si puede usar Array, Number, String, Date y Object de manera efectiva. Más puntos para Matemáticas y RegExp. Debería poder escribir funciones y usar variables (en el alcance correcto, es decir, como ''métodos'' de un objeto).

Veo algunos comentarios acerca de los cierres conocidos, la sintaxis de funciones extravagantes, blabla. Todo eso es bastante irrelevante para esta pregunta. Eso es como decir que eres un corredor si puedes correr el guión de 100m en 11 segundos.

Yo digo que tal vez se necesiten un par de semanas para dominar javascript. Después de eso, se necesitan años y docenas de libros y miles de líneas de programación para convertirse en un experto, un ninja, etc.

Pero esa no era la pregunta.

Ah, y el DOM no es una parte de javascript, y tampoco lo es jQuery. Así que creo que ambos son igualmente irrelevantes para la pregunta.


Si quieres ser un verdadero ninja de JavaScript, debes saber las respuestas a todas las preguntas en la Prueba de JavaScript de Perfection Kills .

Un ejemplo para abrir el apetito:

(function f(f){ return typeof f(); })(function(){ return 1; });

¿Qué devuelve esta expresión?

  • "número"
  • "Indefinido"
  • "función"
  • Error

Uno debe ser consciente de lo siguiente para decir "I Know JavaScript":

  1. JavaScript es bueno pero DOM es punto de dolor
  2. Los problemas de los navegadores cruzados pueden volverte loco
  3. A menos que el código se haya probado en al menos 4 buenos navegadores diferentes, no se puede decir que esté libre de errores
  4. Cierre .............. Debe saber
  5. Su prototipo basado ........... Agradable es divertido aprender esto.
  6. Palabra clave del depurador ..... Ayuda en crisis

jQuery sería mi mejor recomendación. No solo por el código en sí, es el idioma, el estilo, el pensamiento detrás del que es más digno de emulación.


No jQuery. No YUI. No (etc. etc.)

Los marcos pueden ser útiles, pero a menudo ocultan los detalles a veces desagradables de cómo funcionan realmente el JavaScript y el DOM. Si su objetivo es poder decir "Yo sé JavaScript", entonces invertir mucho tiempo en un marco se opone a eso.

Aquí hay algunas características del lenguaje JavaScript que deberías saber para asimilar lo que está haciendo y no quedar atrapado, pero que no son obvias para muchas personas:

  • Ese object.prop y el object[''prop''] son la misma cosa (así que puedes dejar de usar eval , gracias). que las propiedades de los objetos son siempre cadenas (incluso para matrices); lo que for ... in es para (y lo que no es ).

  • Inhalación de propiedad; lo undefined es (y por qué huele ); por qué el operador aparentemente poco conocido es beneficioso y diferente de los controles de tipo / undefined ; hasOwnProperty ; El propósito de delete .

  • Que el tipo de datos Number es realmente un flotador; las dificultades de uso de flotadores independientes del lenguaje; Evitando la trampa octal parseInt .

  • Función anidada de alcance; la necesidad de usar var en el alcance que se quiere evitar globalmente accidental; cómo se pueden utilizar los alcances para los cierres; El problema del bucle de cierre .

  • Cómo las variables globales y window propiedades de la window chocan; cómo las variables globales y los elementos del documento no deberían colisionar, sino hacerlo en IE; La necesidad de usar var en el alcance global también para evitar esto.

  • Cómo actúa la declaración de function para " hoist " una definición antes del código que la precede; la diferencia entre sentencias de función y expresiones de función; por qué las expresiones de funciones nombradas no deben ser usadas .

  • Cómo funcionan realmente las funciones del constructor, la propiedad prototype y el new operador; methods para explotar esto para crear el sistema normal de clase / subclase / instancia que realmente deseaba; cuando es posible que desee utilizar objetos basados ​​en el cierre en lugar de prototipos. (La mayoría del material tutorial de JS es absolutamente terrible en esto; me tomó años entenderlo directamente).

  • Cómo se determina esto en el momento de la llamada, no se vincula; cómo, por consiguiente, el paso de métodos no funciona como espera de otros idiomas; cómo Function#bind pueden utilizar los cierres o la Function#bind para solucionar eso.

  • Otras características de ECMAScript Fifth Edition como indexOf , forEach y los métodos de programación funcional en Array ; cómo reparar los navegadores antiguos para garantizar que puedas usarlos; usándolas con expresiones de funciones anónimas en línea para obtener código compacto y legible.

  • El flujo de control entre el navegador y el código de usuario; Ejecución síncrona y asíncrona; eventos que se activan dentro del flujo de control (p. ej., enfoque) vs. eventos y tiempos de espera que se producen cuando el control regresa; cómo llamar a una alert incorporada supuestamente sincrónica puede terminar causando una re-entrada potencialmente desastrosa.

  • Cómo las secuencias de comandos entre ventanas afectan a instanceof ; cómo las secuencias de comandos entre ventanas afectan el flujo de control a través de diferentes documentos; Cómo postMessage con suerte arreglará esto.

Ver esta respuesta con respecto a los dos últimos elementos.

Por encima de todo, debería estar viendo JavaScript de forma crítica, reconociendo que es, por razones históricas, un idioma imperfecto (incluso más que la mayoría de los idiomas), y evitando sus peores puntos problemáticos. El trabajo de Crockford en este frente definitivamente vale la pena leerlo (aunque no estoy 100% de acuerdo con él sobre cuáles son las "partes buenas").


matriz length método de length no es un recuento de elementos de matriz, sino el índice más alto. incluso cuando el elemento se configuró como undefined

var a = []; a.length; // === 0 a[10]; // === undefined a[10] = undefined; a.length; // === 11 a.pop(); // === undefined a.length; // === 10

este comportamiento es apenas distinguible de un error de diseño de lenguaje ..


Las variables son globales a menos que sean declaradas locales !!

Malo (DoSomething () solo se llama 10 veces):

function CountToTen() { for(i=0; i< 10; i++) { DoSomething(i); } } function countToFive() { for(i=0; i<5; i++) { CountToTen(); } } CountToFive();

Bueno (DoSomething () se llama 50 veces según lo previsto):

function CountToTen() { var i; for(i=0; i< 10; i++) { DoSomething(i); } } function countToFive() { var i; for(i=0; i<5; i++) { CountToTen(); } } CountToFive();