DIY Minification

No minifier can compress bad code properly.

In this example, I just want to show how much a minifier does.

What you should do before you minify

And regarding jQuery... I don't use jQuery. jQuery is for old browsers; it was made for compatibility reasons. Check Can I use; almost everything works in every browser (also Internet Explorer 10 is standardized now). I think now it's just here to slow down your web application... If you like the $(), you should create your own simple function. And why bother to compress your code if your clients need to download the 100 KB jQuery script every time? How big is your uncompressed code? 5-6 KB...? Not to talk about the tons of plugins you add to to make it easier.

Original Code

When you write a function you have an idea, start to write stuff and sometimes you end up with something like the following code.The code works.Now most people stop thinking and add this to a minifier and publish it.

function myFunction(myNumber){
    var myArray = new Array(myNumber);
    var myObject = new Object();
    var myArray2 = new Array();
    for(var myCounter = 0; myCounter < myArray.length; myCounter++){
        myArray2.push(myCounter);
        var myString = myCounter.toString()
        myObject[myString] = (myCounter + 1).toString();
    }
    var myContainer = new Array();
    myContainer[0] = myArray2;
    myContainer[1] = myObject;
    return myContainer;
}

Here is the minified code (I added the new lines):

Minified using (http://javascript-minifier.com/)

function myFunction(r){
 for(var n=new Array(r),t=new Object,e=new Array,a=0;a<n.length;a++){
  e.push(a);
  var o=a.toString();
  t[o]=(a+1).toString()
 }
 var i=new Array;
 return i[0]=e,i[1]=t,i
}

But are all those variables, ifs, loops, and definitions necessary?

Most of the time, NO!

  1. Remove unnecessary if,loop,var
  2. Keep a copy of your original code
  3. Use the minifier

OPTIONAL (increases the performance & shorter code)

  1. use shorthand operators
  2. use bitwise operators (don't use Math)
  3. use a,b,c... for your temp vars
  4. use the old syntax (while,for... not forEach)
  5. use the function arguments as placeholder (in some cases)
  6. remove unneccessary "{}","()",";",spaces,newlines
  7. Use the minifier

Now if a minifier can compress the code your doing it wrong.

No minifier can compress properly a bad code.

DIY

function myFunction(a,b,c){
 for(b=[],c={};a--;)b[a]=a,c[a]=a+1+'';
 return[b,c]
}

It does exactly the same thing as the codes above.

Performance

http://jsperf.com/diyminify

You always need to think what you need:

Before you say "No one would write code like the one below" go and check the first 10 questions in here ...

Here are some common examples I see every ten minutes.

Want a reusable condition

if(condition=='true'){
 var isTrue=true;
}else{
 var isTrue=false;
}
//same as
var isTrue=!!condition

Alert yes only if it exists

if(condition==true){
 var isTrue=true;
}else{
 var isTrue=false;
}
if(isTrue){
 alert('yes');
}
// The same as
!condition||alert('yes')
// If the condition is not true alert yes

Alert yes or no

if(condition==true){
 var isTrue=true;
}else{
 var isTrue=false;
}
if(isTrue){
 alert('yes');
}else{
 alert('no');
}
// The same as
alert(condition?'yes':'no')
// If the condition is true alert yes else no

Convert a number to a string or vice versa:

var a=10;
var b=a.toString();
var c=parseFloat(b)
// The same as
var a=10,b,c;
b=a+'';
c=b*1

// Shorter
var a=10;
a+='';// String
a*=1;// Number

Round a number

var a=10.3899845
var b=Math.round(a);
// The same as
var b=(a+.5)|0; // Numbers up to 10 decimal digits (32bit)

Floor a number

var a=10.3899845
var b=Math.floor(a);
// The same as
var b=a|0;//numbers up to 10 decimal digits (32bit)

switch case

switch(n)
{
case 1:
  alert('1');
  break;
case 2:
  alert('2');
  break;
default:
  alert('3');
}

// The same as
var a=[1,2];
alert(a[n-1]||3);

// The same as
var a={'1':1,'2':2};
alert(a[n]||3);

// Shorter
alert([1,2][n-1]||3);
// Or
alert([1,2][--n]||3);

try catch

if(a&&a[b]&&a[b][c]&&a[b][c][d]&&a[b][c][d][e]){
 console.log(a[b][c][d][e]);
}

// This is probably the only time you should use try catch
var x;
try{x=a.b.c.d.e}catch(e){}
!x||conole.log(x);

More if

if(a==1||a==3||a==5||a==8||a==9){
 console.log('yes')
}else{
 console.log('no');
}

console.log([1,3,5,8,9].indexOf(a)!=-1?'yes':'no');

But indexOf is slow. Read this: How do I check if an array includes a value in JavaScript?

Numbers

1000000000000
// The same as
1e12

var oneDayInMS=1000*60*60*24;
// The same as
var oneDayInMS=864e5;

var a=10;
a=1+a;
a=a*2;
// The same as
a=++a*2;

Some nice articles/sites I found about bitwise/shorthand:

http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/

http://www.140byt.es/

http://www.jquery4u.com/javascript/shorthand-javascript-techniques/

There are also many jsperf sites showing the performance of shorthand & bitwise if you search with your favorite search engine.

I could go one for hours.. but I think it's enough for now.

If you have some questions, just ask.

And remember:

No minifier can compress properly bad code.

Answer from cocco on Stack Overflow
🌐
DebugBear
debugbear.com › blog › minify-javascript-css
Minify JavaScript And CSS Code For A Faster Website | DebugBear
October 20, 2025 - While text compression works for every text document, code minifiers understand the meaning of the text they're compressing. They know that, in JavaScript, comments are wrapped in /* */ and removing them doesn't impact how the code runs.
🌐
Minify JS
minify-js.com
Minify JS Online. JavaScript Minification tool that works in browser. | Minify JS Online
There are many options to minify javascript code. Official PageSpeed Insights documentation recommends minifying JavaScript using the UglifyJS utility. As an alternative, it recommends trying the Closure Compiler tool.
Discussions

gzip - How to 'minify' JavaScript code, like jQuery is minified - Stack Overflow
jQuery has two versions for download. One is Production (19 KB, minified and gzipped), and the other is Development (120 KB, uncompressed code). Now the compact 19 KB version, if you download it, you More on stackoverflow.com
🌐 stackoverflow.com
What exactly is a minified JavaScript file?
Usually, minification goes further. Replacing the names of variables and internal methods, even rewriting certain patterns to be smaller. In most cases, the code won't be faster, only load slightly faster (usually, gzip will save less bytes). However loading time is only an issue when you don't cache. More on reddit.com
🌐 r/javascript
20
8
June 13, 2015
Why do we minify and obfuscate our code? No, really
If they really want to debug in production, you could use sourcemaps, while still minifying your code to decrease the bundle size. Then, everybody wins. More on reddit.com
🌐 r/Frontend
122
53
September 29, 2024
Do you minify your javascript?
There’s nothing you can do, that’s how the web works. More on reddit.com
🌐 r/django
30
1
November 8, 2024
People also ask

What is JavaScript Minification?
Minification, or minimization, of JavaScript source code is the process removing all characters that aren't required for proper execution. These unnecessary characters usually include formatting characters, like: whitespaces, linebreak characters, comments, and in some cases block delimeters and end-of-line characters. After minification is applied, JS code is supposed to keep its functionality.
🌐
minify-js.com
minify-js.com
Minify JS Online. JavaScript Minification tool that works in browser.
How does JavaScript Minification work?
Minification process is performed by a software or utility that analyzes and rewrites source code to reduce its size. Usually, minification process includes removal of whitespaces, shortening of variable names, and verbose functions replacement. Minification is performed on the server side and only when the source file is changed.
🌐
minify-js.com
minify-js.com
Minify JS Online. JavaScript Minification tool that works in browser.
Why is Minification used?
Minification allows to reduce JavaScript file size that has a positive impact on load times and bandwidth usage. As a result, site speed and accessibility is higher compared to sites that don't use minification. Other words, minification tangibly improves user experience.
🌐
minify-js.com
minify-js.com
Minify JS Online. JavaScript Minification tool that works in browser.
🌐
Toptal
toptal.com › developers › javascript-minifier
JavaScript Minifier & Compressor | Toptal®
Use our JavaScript Minifier & Compressor tool to reduce JavaScript code size and make your website load faster. Get started for free now.
🌐
Unminify
unminify.com
Unminify JS, CSS, HTML, XML and JSON Code
This tool will unminify, reformat and reindent ugly JavaScript, CSS, HTML, XML and JSON code, making it readable again.
🌐
Minifier
minifier.org
Minify JS / CSS - JavaScript and CSS Minifier / Compressor
Minify JS and CSS using this online javascript / css compressor. You can paste .js or .css file, or just plain javascript or CSS code.
🌐
Cloudflare
cloudflare.com › learning › performance › why-minify-javascript-code
Why minify JavaScript code? | Cloudflare
Minification, also known as minimization, is the process of removing all unnecessary characters from JavaScript source code without altering its functionality. This includes the removal of whitespace, comments, and semicolons, along with the ...
Find elsewhere
Top answer
1 of 9
53

DIY Minification

No minifier can compress bad code properly.

In this example, I just want to show how much a minifier does.

What you should do before you minify

And regarding jQuery... I don't use jQuery. jQuery is for old browsers; it was made for compatibility reasons. Check Can I use; almost everything works in every browser (also Internet Explorer 10 is standardized now). I think now it's just here to slow down your web application... If you like the $(), you should create your own simple function. And why bother to compress your code if your clients need to download the 100 KB jQuery script every time? How big is your uncompressed code? 5-6 KB...? Not to talk about the tons of plugins you add to to make it easier.

Original Code

When you write a function you have an idea, start to write stuff and sometimes you end up with something like the following code.The code works.Now most people stop thinking and add this to a minifier and publish it.

function myFunction(myNumber){
    var myArray = new Array(myNumber);
    var myObject = new Object();
    var myArray2 = new Array();
    for(var myCounter = 0; myCounter < myArray.length; myCounter++){
        myArray2.push(myCounter);
        var myString = myCounter.toString()
        myObject[myString] = (myCounter + 1).toString();
    }
    var myContainer = new Array();
    myContainer[0] = myArray2;
    myContainer[1] = myObject;
    return myContainer;
}

Here is the minified code (I added the new lines):

Minified using (http://javascript-minifier.com/)

function myFunction(r){
 for(var n=new Array(r),t=new Object,e=new Array,a=0;a<n.length;a++){
  e.push(a);
  var o=a.toString();
  t[o]=(a+1).toString()
 }
 var i=new Array;
 return i[0]=e,i[1]=t,i
}

But are all those variables, ifs, loops, and definitions necessary?

Most of the time, NO!

  1. Remove unnecessary if,loop,var
  2. Keep a copy of your original code
  3. Use the minifier

OPTIONAL (increases the performance & shorter code)

  1. use shorthand operators
  2. use bitwise operators (don't use Math)
  3. use a,b,c... for your temp vars
  4. use the old syntax (while,for... not forEach)
  5. use the function arguments as placeholder (in some cases)
  6. remove unneccessary "{}","()",";",spaces,newlines
  7. Use the minifier

Now if a minifier can compress the code your doing it wrong.

No minifier can compress properly a bad code.

DIY

function myFunction(a,b,c){
 for(b=[],c={};a--;)b[a]=a,c[a]=a+1+'';
 return[b,c]
}

It does exactly the same thing as the codes above.

Performance

http://jsperf.com/diyminify

You always need to think what you need:

Before you say "No one would write code like the one below" go and check the first 10 questions in here ...

Here are some common examples I see every ten minutes.

Want a reusable condition

if(condition=='true'){
 var isTrue=true;
}else{
 var isTrue=false;
}
//same as
var isTrue=!!condition

Alert yes only if it exists

if(condition==true){
 var isTrue=true;
}else{
 var isTrue=false;
}
if(isTrue){
 alert('yes');
}
// The same as
!condition||alert('yes')
// If the condition is not true alert yes

Alert yes or no

if(condition==true){
 var isTrue=true;
}else{
 var isTrue=false;
}
if(isTrue){
 alert('yes');
}else{
 alert('no');
}
// The same as
alert(condition?'yes':'no')
// If the condition is true alert yes else no

Convert a number to a string or vice versa:

var a=10;
var b=a.toString();
var c=parseFloat(b)
// The same as
var a=10,b,c;
b=a+'';
c=b*1

// Shorter
var a=10;
a+='';// String
a*=1;// Number

Round a number

var a=10.3899845
var b=Math.round(a);
// The same as
var b=(a+.5)|0; // Numbers up to 10 decimal digits (32bit)

Floor a number

var a=10.3899845
var b=Math.floor(a);
// The same as
var b=a|0;//numbers up to 10 decimal digits (32bit)

switch case

switch(n)
{
case 1:
  alert('1');
  break;
case 2:
  alert('2');
  break;
default:
  alert('3');
}

// The same as
var a=[1,2];
alert(a[n-1]||3);

// The same as
var a={'1':1,'2':2};
alert(a[n]||3);

// Shorter
alert([1,2][n-1]||3);
// Or
alert([1,2][--n]||3);

try catch

if(a&&a[b]&&a[b][c]&&a[b][c][d]&&a[b][c][d][e]){
 console.log(a[b][c][d][e]);
}

// This is probably the only time you should use try catch
var x;
try{x=a.b.c.d.e}catch(e){}
!x||conole.log(x);

More if

if(a==1||a==3||a==5||a==8||a==9){
 console.log('yes')
}else{
 console.log('no');
}

console.log([1,3,5,8,9].indexOf(a)!=-1?'yes':'no');

But indexOf is slow. Read this: How do I check if an array includes a value in JavaScript?

Numbers

1000000000000
// The same as
1e12

var oneDayInMS=1000*60*60*24;
// The same as
var oneDayInMS=864e5;

var a=10;
a=1+a;
a=a*2;
// The same as
a=++a*2;

Some nice articles/sites I found about bitwise/shorthand:

http://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/

http://www.140byt.es/

http://www.jquery4u.com/javascript/shorthand-javascript-techniques/

There are also many jsperf sites showing the performance of shorthand & bitwise if you search with your favorite search engine.

I could go one for hours.. but I think it's enough for now.

If you have some questions, just ask.

And remember:

No minifier can compress properly bad code.

2 of 9
37

You could use one of the many available JavaScript minifiers.

  • YUI Compressor
  • Google closure compiler
  • Dean Edwards packer
  • JSMin
🌐
Code Beautify
codebeautify.org › minify-js
Minify JS is JavaScript Minifier online
https://codebeautify.org/ minify-js?input= var · carInsuranceCom · pany = { name: "Geico", market_capital: "$34.9 · billion", }; var · carInsuranceCom · panyObj = JSON.stringify( obj); document.getEle · mentById("insur · ance").innerHTM · L = carInsuranceCom · panyObj; Related Tools · JS Beautifier CSS minifier JSON Minify XML Minify · Recently visited pages · Tags · JavaScript Minifiers ·
🌐
DigitalOcean
digitalocean.com › community › tools › minify
JavaScript Minify Tool | DigitalOcean
Minify your JavaScript source code with our interactive web interface for Terser.
🌐
JSCompress
jscompress.com
JSCompress - The JavaScript Compression Tool
JSCompress is an online JavaScript compressor that allows you to compress and minify all of your JS files by up to 80% of their original size. Copy and paste your code or you can upload and combine multiple files and then compress.
🌐
freeCodeCamp
freecodecamp.org › news › javascript-minify-minifying-js-with-a-minifier-or-jsmin
JavaScript Minify – Minifying JS with a Minifier or jsmin
November 2, 2022 - I'll share two minifying tools you can use. This tool removes whitespace, strips comments, combines files, and optimizes a few common programming patterns. You install the tool on your device and configure it in your code with the JavaScript path that you want you to minify for production.
🌐
Playtools
playtools.github.io › minify › js-minify › index.html
JS Minifier - Minify Your JavaScript Code Online
Use JS Minifier to quickly minify your JavaScript code online. Remove comments, spaces, and blank lines for a cleaner, smaller script in seconds.
🌐
JS Minify
jsminify.pages.dev
JS Minify - Compress Your JavaScript Code
Compress booleans true → !0, false → !1 Compress undefined / void undefined → void 0 Add timestamp header Prepend /* minified: date */ comment Compress Infinity Infinity → 1/0 Optimize numeric literals 0.5 → .5, 1000 → 1e3 Optimize string concatenation Merge adjacent string literals ... Professional JavaScript compression with precise options for modern ES6+ codebases and production deployments.
🌐
DebugBear
debugbear.com › tool › minify-js
Online JavaScript Minifier: Compress JS Code
Minify your JavaScript code to reduce file size and improve page load performance.
🌐
JetBrains
jetbrains.com › help › webstorm › minifying-javascript.html
Minifying JavaScript | WebStorm Documentation
To minify your code automatically, you need to install a minification tool and configure a File Watcher which will track changes to your files and run the minification tool. By default, minification starts as soon as a JavaScript file in the ...
🌐
Kinsta®
kinsta.com › home › resource center › blog › javascript tutorials › how to minify javascript — recommended tools and methods
How to minify JavaScript — Recommended tools and methods
July 31, 2024 - Some work goes into making code more compact while keeping it functional. To minify JavaScript code, you must parse it, compress it, and get the output. Once it’s been minified, it should be almost unreadable to the naked eye.
🌐
CodeUtility
minifyjs.codeutility.io
JavaScript Minifier - Minify JS online
Minify JavaScript code online. Quickly compress and optimize JS files by removing unnecessary characters and whitespace.
🌐
GTmetrix
gtmetrix.com › minify-javascript.html
Lighthouse: Minify JavaScript
Minifying JavaScript files is an optimization technique to reduce JavaScript payload and the main-thread blocking time. Minification can help reduce JavaScript file sizes by removing comments, white spaces, and redundant code, and in some cases, ...
🌐
Js
minify.js.org › js
Minify JavaScript Online
Minify your JavaScript files online by pasting some JavaScript code into the text area below, or by opening multiple JavaScript files at once to be combined in the output.