How JavaScript works when multiply a string (as a number) & number (1+"1-1") : 
<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

    console.log("1" * "123")//123
    console.log(1 * "123")//123
    console.log("1" * 123)//123

    console.log("ABC" * 123)//NaN
    console.log("ABC" * "ABC")//NaN

    console.log("0" * ("1-2"))//NAN
    console.log("0" * (1-2))//0

<!-- end snippet -->

>"123" is a string type but the  value is a number. So JavaScript allow to multiplication.  
as same as "1-2" is a string type but the value is number.why it does not allow to multiplication? And how JavaScript handle this? 

