Quel est la place de try-catch dans la manière de gérer les erreurs en Node.js ? Une traduction de l'article What is try-catch?
Classé dans Erreurs
Quel est la place de try-catch dans la manière de gérer les erreurs en Node.js ? Une traduction de l'article What is try-catch?
Classé dans Erreurs
Un objet erreur est remonté lorsque tout ne se passe pas comme prévu, voyons cela. Une traduction de l'article What is the error object?
Classé dans Erreurs
Quand les paramètres des fonctions ne sont pas renseignés, quelles alternatives possibles ? Une traduction de l'article How To Create Default Parameters for Functions
Classé dans Conventions JavaScript
Comment faire pour lister le nombre de paramètres passées dans une fonction ? Une traduction de l'article What is the arguments object?
Classé dans Conventions JavaScript
La notation JavaScript condensé dans un objet devenu si populaire ! Une traduction de l'article What is JSON?
Classé dans Conventions JavaScript
Petite liste de fonctionnalités implémentées depuis ECMAScript 5 que vous ne connaissez peut-être pas ! Une traduction de l'article Using ECMA5 in Node.js
Classé dans Conventions JavaScript
Comprendre pourquoi il y a des modules du cœur de l'écosystème et des modules satellites. Une traduction de l'article What is node core versus userland
Classé dans Pour commencer
Découvrez comment récupérer les informations envoyé par un formulaire web. Une traduction de l'article How to handle multipart form data
Classé dans Pour commencer
Comment fonctionne les émetteurs d'évènement et quel est leur utilité ? Une traduction de l'article What are Event Emitters?
Classé dans Pour commencer > Structure de contrôle
Comprendre la nature asynchrone fondamentale de Node.js. Une traduction de l'article How to write asynchronous code
Classé dans Pour commencer > Structure de contrôle
Comment obtenir le détail d'un paquet npm par l'exemple. Une traduction de l'article How to access module package info
Classé dans Pour commencer > npm
Présentation du gestionnaire de dépôt et d'installation de projet de Node.js. Une traduction de l'article What is npm?
Classé dans Pour commencer > npm
Exemple de code pour déboguer efficacement votre code serveur dans un navigateur web ! Une traduction de l'article How to debug a node application
Classé dans Pour commencer
Qu'est-ce que le REPL ou l'exécution de Node.js dans un invité de commande et comment l'utiliser ? Une traduction de l'article How do I use node's REPL?
Classé dans REPL
À quoi sert require, comment fonctionne t-il et comment l'utiliser ? Une traduction de l'article What is require?
Classé dans Pour commencer
Comment temporiser les actions avec des fonctions “timer” côté serveur pour jouer avec la boucle d'évènement ? Une traduction de l'article What are the built-in timer functions?
Classé dans Conventions JavaScript
Comment déboguer les objets en Node.js ? Une traduction de l'article How to use util.inspect
Classé dans Pour commencer
Pourquoi existe t'il un module console en Node.js puisqu'il existe des équivalences dans le module process ? Une traduction de l'article The built-in console module
Classé dans Pour commencer
Un exemple de comment analyser les paramètres passés à une commande dans un invité de commande. Une traduction de l'article How to parse command line arguments
Classé dans Ligne de commande
Un exemple de comment demander aux utilisateurs de saisir des données à partir d'un script de ligne de commande. Une traduction de l'article How do I prompt users for input from a command-line script?
Classé dans Ligne de commande
Quels sont les processus globaux utiles en Node.js et comment s'en servir ? Une traduction de l'article How to use the global process module
Classé dans Pour commencer
Qu'est-ce qu'un identificateurs global dans Node.js et quels sont-ils ? Une traduction de l'article The built-in globals in Node.js
Classé dans Pour commencer
Comment décrire simplement pour un développeur et un programme ce qu'est et fait votre développement ? Une traduction de l'article What is the file package.json?
Classé dans Pour commencer > npm
Pourquoi Node.js passe la valeur d'erreur en premier argument des fonctions de rappel ? Une traduction de l'article What are the error conventions?
Classé dans Erreurs
Pourquoi Node.js a adopter un modèle asynchrone et quels en sont les avantages ? Une traduction de l'article What are callbacks?
Classé dans Pour commencer > Structure de contrôle
Cet article de blog se penche sur une distinction syntaxique qui est malheureusement assez importante en JavaScript : la différence entre les expressions et les structures de contrôle (aussi appelées, dans certains cas, déclarations).
Petit guide interactif pour vérifier en un clin d'œil quels sont les informations disponibles à quels niveaux du réseau avec HTTPS et/ou Tor !
Pour résumé, voici ce que vous pourrez apprendre ici pour aider à garder votre anonymat.
Cet article fait office de conventions d'architecture d'un site web orienté composant pour la partie cliente, peu importe la technologie d'implémentation finale, de manière à ce que le code soit valide, performant et maintenable par des développeurs front-end, des développeurs back-end ainsi que des pousseurs de contenu. Ces techniques étant en constantes évolution, et les problématiques évoluant au fur et à mesure de mes itérations créatives, cet article est voué à se compléter et changer.
Ce billet fait partie de la collection ES5 dans le détail et en constitue le Chapitre 1.
Il est dédié à l'un des nouveaux concepts introduit par la spécification ECMA-262-5 de JavaScript à propos des attributs de propriétés et des mécanismes de leur gestion ; les descripteurs de propriété.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 9.
Dans cet article, nous allons étudier la stratégie de passage de paramètres (aussi appelé la stratégie de passage des arguments) via des fonctions JavaScript.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 8.
Cet article va traiter de deux points importants de l'implémentation de la programmation orientée objet du point de vue de JavaScript, les fonctions constructeurs et la chaîne des prototypes.
ES7 est déjà dans nos chaumières et, en plus d'être « à peu près au point » avec ES5, vous n'avez toujours pas digéré ES6 !
Il va être temps de nous y pencher de plus près sur ce blog pour aborder la suite de l'aventure JavaScript sereinement. Cet article à pour but, de vous en apprendre plus sur les versions ES3 et ES5 de JavaScript dites « Vanilla JavaScript » tout en les comparant à des équivalences ES6 dites « Harmony JavaScript ». Cela nous permettra de comprendre en quoi ces améliorations peuvent nous aider au quotidien.
Nous allons éplucher les fonctionnalités dans un ordre logique d'apprentissage et explorer les mécaniques sous-jacentes. Nous allons même nous permettre, en amont, de réviser un peu les bases. Ça risque d'être long alors, de la même manière que cet article va être publié en plusieurs mise à jour, n'hésitez pas à le lire en plusieurs fois !
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 7.
Cet article va traiter des six types existants en JavaScript dans sa version ES3.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 6.
Dans cet article nous allons parler d'un des sujets le plus souvent questionné en JavaScript : les fermetures (« closures »).
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 5.
Dans cet article nous allons parler de l'un des objets principal en JavaScript – les fonctions.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 4.
Ce chapitre est dédié, encore une fois, à un mécanisme lié aux contextes d'exécution : j'ai nommé la chaîne des portées.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 3.
Dans cet article nous allons discuter d'une propriété supplémentaire liée aux contextes d'exécution : le mot-clé this.
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 2.
Nous déclarons des variables et des fonctions avec lesquels tournent nos programmes. Mais comment, et quand l'interpréteur trouve ces données ? Que se passe t-il quand une référence à un objet est demandée ?
Ce billet fait partie de la collection ES3 dans le détail et en constitue le Chapitre 1.
Dans ce billet nous évoquerons les contextes d'exécution en JavaScript, ainsi que leurs différentes déclinaisons.
Connaissez-vous ce petit code de triche qu'est le Konami Code ? Ce code à entrer dans les jeux vidéos permet de débloquer des options secrètes. Je vous propose de l'implémenter sur vos sites web en JavaScript avec une petite API maison gérant le clavier et le tactile. Suivez le guide !
L'API présenté dans cet article lève un événement JavaScript quand vous entrez la célèbre séquence du Konami Code « Haut Haut Bas Bas Gauche Droite Gauche Droite B A » avec votre clavier. Cela marche également avec votre doigt en glissant « Haut Haut Bas Bas Gauche Droite Gauche Droite » puis en faisant « Tap Tap ».
Je l'ai encore croisée au détour d'un code ! J'y ai prêté attention pour la première fois sur le Framework CSS Semantic-UI car j'ai vu dans la source qu'il était impossible d'afficher une icône avec ce Framework sans utiliser la balise qui n'existe pas : la balise Icon !
Je vous la présente sans plus de suspense avec cet exemple : <i class="icon settings"></i>. Son rendu est une icône, représentant par exemple ici de quoi modifier les paramètres. Il n'y a pas de doute, l'intention première est d'afficher une icône, non pas avec la balise <img> estimée réservée à de l'affichage de contenu pure (au contraire d'une décoration), mais en remplacement de <span> qui, lui, est trop neutre.
Quoi de mieux qu'une balise qui est inline, courte, dont la seule lettre représente le début du mot « icon » et qui passe même la validation W3C ? Je vous présente la balise <i> qui a vu le jour grâce à HTML4 et signifiait « le contenu affiché est italique » et qui tenterait de faire son coming-back en tant que nouvelle icône derrière le dos du W3C !
Mais ça me pause un problème. Parlons en de cette fausse-vrai balise !
Par convention, on a toujours utilisé la balise <link> dans la balise <head>. Cette balise est utilisée —entre autre— pour permettre aux navigateurs de lire et d'appliquer les instructions CSS depuis une feuille CSS.
Par convention dis-je ? Pas réellement car :
Exemple : Ainsi le code suivant est valide :
<head> ... <link rel="stylesheet" type="text/css" href="example/css.css" media="screen" /> ... </head>
mais
Exemple : le code suivant est invalide :
<body> ... <link rel="stylesheet" type="text/css" href="example/css.css" media="screen" /> ... </body>
Cependant, puisque l'affichage du contenu de la page est mis en attente tant que les fichiers href des <link> ne sont pas téléchargés et analysés par le navigateur, cela participe à ralentir l'affichage du contenu des pages aux yeux de l'utilisateur ce qui mène parfois les outils comme PageSpeed ou GTmetrix a demander de placer les feuilles CSS très lourdes après l'analyse du DOM.
Mais puisque cela n'est pas valide, comment faire pour placer la balise <link> en pied de balise <body> ?
Autant vous annoncer la mauvaise nouvelle tout de suite, il n'est pas possible d'utiliser les Media Queries dans l'attribut des balises HTML style. Ainsi le code suivant ne fonctionnera pas...
<div>
<img
src="image/que/je/veux/decaller/seulement/quand/elle/flotte.png"
style="@media(min-width: 768px){float:left margin:-4px 16px 8px -24px;}">
<p>J'aimerai faire flotter à gauche l'image ci-dessus uniquement sur
les grands écrans. Comme les valeurs de `margin` sont ajustées uniquement
aux propriétés de cette image (-4px 16px 8px -24px), il n'existe pas de
classe HTML-driven comme créer un `.float-left` (à l'avance) qui répondrait
exactement à mon besoin.</p>
</div>
...c'est comme ça !
Dans ce cas, comment faire pour gérer des propriétés CSS ponctuellement en utilisant les Media Queries ? Cela est très utile pour le remplissage de contenu pour ajuster des images ou encore manager des background-image.
La solution n'est pas l'attribut style des balises HTML mais la balise <style> elle même !
Voilà les petites bases qu'il faut rapidement se mettre en tête à propos de la différence entre les marges externes ou margins et marges internes ou paddings :
Les margins d'un élément HTML se superposent avec les margins de leur voisin, avec les margins de leur parents, avec les margins des enfants des voisins, etc. Puisqu'elles se trouvent à l'extérieur des borders, elles ne sont pas affectées par les backgrounds.
Les paddings d'un élément HTML s'additionnent ou se cumulent avec les paddings de leur voisins, avec les paddings de leur parents, avec les paddings des enfants des voisins etc. Puisqu'elles se trouvent à l'intérieur de border, elles sont affectées par les backgrounds.
Deux trois autres chose rapide sont à savoir : comme le fait qu'un élément inline ne gère pas les paddings ou qu'un margin négatif déplace les éléments contrairement au padding négatif qui ne fait rien, etc.
Mais saviez-vous que : Si les éléments deviennent flottants en continuant de prendre toute la largeur... les marges externes se comportent comme les marges internes !
Connaissez vous les langages Markdown ? Mais si, il est probable que vous en connaissiez sans même savoir qu'ils pouvaient être nommés. Vous avez déjà écrit un texte sur un Wiki ? Rédigé une carte sur Trello ? Rédigé un Readme sur GitHub ou sur BitBucket ? Un commentaire sur CodePen ? Vous les avez déjà croisés ces .md rarement reconnus de base par les bloc-notes.
Non ? Si cela ne vous parle pas, sachez que Markdown pourrait devenir votre meilleur ami pour écrire des spécifications précises ou vagues sur vos projets, seul ou avec vos collègues avec un minimum d'efforts grâce à StackEdit.io. Vous pourriez même au final écrire toutes sortes de choses facilement !
Quand une page web est chargée, les éléments externes à celle-ci sont appelés tout au long de son chargement pour permettre au navigateur d'afficher le résultat visuel final. Cela prend du temps, et certains chargements bloquent le rendu alors que d'autres non. D'autres encore sont ignorés tant qu'une action de la part de l'utilisateur n'a pas été effectuée.
Pour bien comprendre et manager ses chargements de page, je vous propose de comprendre une liste de comportement au chargement des ressources pour Chrome, Safari, Firefox, IE et Opera.
La balise HTML script permet de définir quand le code JavaScript dans votre page est exécuté. Les attributs HTML5 async et defer sont à présent supportés par Firefox, Chrome, Safari et Internet Explorer 10+ (sinon ils sont ignorés) et permettent de modifier le comportement de chargement des scripts. Voici de courtes explications sur les différences de chaque appel.
Mais le JavaScript n'est pas typé ? Mais si, il y en a 13 ! Ah non, il y en 7... Bah il me semble qu'il y a Object, Function, Array, Math, String, Number, Boolean. Et tu fais quoi de RegExp ? Attends, Function c'est pas un type, c'est un sous type mais Null c'est un type... ? Ho là là...
Si vous faites du jQuery à vos heures ou même pas mal de JavaScript sur vos sites web, il est temps d'apprendre tout ce qu'il y a à savoir sur le typage implicite de JavaScript, car oui : contrairement à ce que certain vous ont dit, JavaScript manipule des éléments typés, on peut même dire que le JavaScript est faiblement typé et dynamiquement typé si vous voulez tout savoir. Les fonctions (et les instances) Object, Function, Array, Date, String, Number, Boolean, RegExp, Error ou encore les objets globaux, Math et JSON : tous sont d'un seul et même type, le type Object. Pourtant String, Number et Boolean sont eux-mêmes un type à par entière en plus des deux petits spéciaux les type Null et Undefined.
Si vous deviez retenir quelques trucs rapidement à propos du JavaScript et des types ça serait que :
Je vais dans un premier temps vous proposer la traduction d'un article de Dmitry Baranovskiy —développeur JavaScript expérimenté— qui explique très bien les types en JavaScript. Je lèverai le doute sur le fameux sixième type (Null ou Function). Et je vous fournirai des lignes de code test pour mettre en évidence ce qui a été expliqué.
Dans cet article les propos entre [ ... ] sont les miens ainsi que ceux qui ne sont pas entre « ... ».
Pour finir, bien que l'auteur vous encourage à lire les spécifications officielles (pour les initiés), je vous encourage pour ma part à lire JavaScript Eloquent (disponible en français ici).
Lire dans une autre langue