Quelques trucs en javascript

Exemple d'une fonction anonyme en JavaScript

Les fonctions anonymes. Déjà rien que le nom ça fait peur et pourtant ce n'est pas très compliqué à comprendre à condition de prendre un peu de temps pour les étudier. Comme dans bien des cas, le ou les mots qui désignent une idée en disent déjà long sur leur rôle. On peut donc en déduire qu'une fonction anonyme est une fonction qui n'a pas de nom, ou du moins une fonction que l'on à pas besoin de nommer pour pouvoir l'utiliser.

Déclarons la fonction "foo()". Elle prend deux arguments: "dataFunction" qui sera le nom d'une autre fonction et "value" qui représente l'argument à utiliser dans cette autre fonction.

function foo(dataFunction, value) {
    dataFunction(value);
}

Maintenant déclarons une autre fonction "bar()" n'ayant qu'un argument "str", une chaîne de caractère que la fonction sera chargée d'afficher en console.

function bar(str) {
    console.log(str);
}

Maintenant appelons la fonction "bar()" à travers la fonction "foo()"

foo(bar, "Bonjour"); // -> affiche "Bonjour" dans la console

Bon jusqu'ici rien de bien compliquer si ce n'est qu'on demande à une fonction d'en exécuter une autre.

Finalement, si la fonction "bar()" n'a pas besoin d'être déclarée pour être réutilisée nous aurions pu la déclarer directement lors de l'appel à "foo()" comme ça:

foo( function bar(str){ console.log(str) }, "Bonjour" ); 

Là vous l'avez peut être compris il n'est plus nécessaire de nommer la fonction "bar()". On lui retire son nom et elle devient anonyme.

foo( function(str){ console.log(str) }, "Bonjour" ); 

Convertir

Décimal vers binaire

var dec = 44;
alert((dec >>> 0).toString(2));

Binaire vers décimal

var bin = 100001;
alert( parseInt(bin, 2) );

ASCII vers binaire en passant par décimal

var jojo = 'abcdef';
var binJo = []; // jojo en binaire
for (var i = 0; i < jojo.length; i++) {
    binJo[i] = (jojo.charCodeAt(i) >>> 0).toString(2);
}
alert(binJo);

convertir les sauts de ligne en br

A tester

function nl2br(str) {
    var break_tag = '<br>';
    return (str + '').replace(/([^>rn]?)(rn|nr|r|n)/g, '' + break_tag + '');
}
21-Apr-2023
^