数学运算符+ - * / %
计算顺序先加减后乘除 隐式转换,所有带有字符串的运算都会尽可能的转为数字进行计算,加号比较特殊(由于“+”也是连字符的符号所以在以“+”面对字符串的时候无法进行隐式转换)。
数学运算中,只有纯字符串,布尔值,null能够进行隐式转换。
隐式转换,就是没有写parseInt(),parseFloat()自己帮你转换格式。
例:console.log(3 * "8"); //24 --运算结果。
console.log("3" * "8"); //24 --运算结果。
console.log("48" / "2"); //24 --运算结果。
console.log("24" % 55); //24 --运算结果。
console.log(3 * null); //0--运算结果。
隐式转换的时候null将被转为0 例: console.log(3 * false); //0 --运算结果
隐式转换的时候false将被转为0 例: console.log(3 * true);//3 --运算结果
隐式转换的时候true将被转为1 不纯的字符串和undefined是不能进行隐式转换的,否则结果为NaN
例:console.log(3 * "8天"); //NaN
数学运算中,不纯的字符串没法隐式转换 例: console.log(3 * undefined); //NaN
数学运算中,undefined不能进行隐式转换
以上几点我们可以得出结论:无论哪种运算,只要出现了undefined参与运算,结果都是NaN。 然后"字符串"、false、true、null都能进行隐式转换。 加号比较特殊,面对"字符串"没有隐式转换的。