Como criar máscara para números com Javascript?

Publicado em:
/**
 * Cria máscara para um número para o formato informado
 * 
 * @param string value
 * @param string placeholder
 * @param character 
 * @return string
 * 
 * */
function mask ( value, placeholder, character = '#') {
   
   let result = '';
   
   for (let i = 0, j = 0; i < placeholder.length; i++) {
      if (placeholder[i] === character) {
          result += value.charAt(j++);
      } else {
         result += placeholder.charAt(i);
      }
   }
   
   return result;
}

Exemplos:

mask('31999999999', '(##) #####-####'); // '(31) 99999-9999'