Asm.js is a strict subset of JavaScript, that C/C++ code can be compiled to.
An asm.js compiled C/C++ code can run in any web browser, because it is JavaScript.
Asm.js is strongly typed because it uses techniques like explicit conversion of values to numbers using bit operations.
Performance
Asm.js is more performant, than JavaScript, because it is a highly-optimized subset of JavaScript.
Asm.js is usually less performant than WebAssembly.
What after asm.js?
Asm.js is superseded by WebAssembly.
External links
https://en.wikipedia.org/wiki/Asm.js