Javascript - Bludwarf/CodeBank GitHub Wiki

Regex

Récupérer toutes les occurences :

[... "my-string".matchAll(/my-regex/g)] // -> Array<Array<string>> : Tableau de matches

QueryParams/URLSearchParams

const queryParams = new URLSearchParams({
	paramName: paramStringValue,
});

Modules

NodeJS Mozilla
Acronyme CJS pour Common.js Modules ESM pour ES Modules (modules natifs à ECMAScript)
Extensions NodeJS *.js ou *.cjs *.mjs
Type package.json 'module'
Export par défaut module.exports = <expr>; export default <expr>;
Export nommé export {<expr> as <id>};
Import par défaut const <id> = require('./module'); import <expr> from "./module.js";
Import nommé import {<id>} from "./module.js";

Standalone : option 1

Pour inclure un fichier js standalone (sans gestion des modules) avec NodeJS :

require('./lib')();

Avec lib.js :

if (typeof module !== 'undefined') {
    module.exports = function() {
        this.MaClasse = MaClasse;
    }
}

Source

Standalone : option 2

On peut également remplacer les déclarations par des expressions. Donc l'exemple de l'option 1 devient :

require('./lib');

Avec lib.js :

MaClasse = class {} // On a transformé la déclaration de fonction en expression fonctionnelle

Standalone : option 3

Encore une autre manière, qui nécessite de bien comprendre le hoisting.

jsdoc

Type paramétré

Test unitaire avec jest + jQuery

npm install --save-dev jest-environment-jsdom

Source Source

/**
 * @jest-environment jsdom
 */

const {readFileSync} = require("fs");
window.$ = require('jquery');

test(`maFonction`, () => {

    loadPage('/issues/18704');
    expect(maFonction).toEqual(monAttendu)

})

function loadPage(path) {
    document.body.innerHTML = readFileSync('./test-resources/pages' + path + '.html').toString()
}
⚠️ **GitHub.com Fallback** ⚠️