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.
Asm.js is more performant, than JavaScript, because it is a highly-optimized subset of JavaScript.
Asm.js is usually less performant than WebAssembly.
Asm.js is superseded by WebAssembly.