数学运算符 +, - ,* ,/ ,%, ()
运算顺序: 先算乘除取余,再加减, 又小括号的先算小括号。
正常运算大家都会,这里我主要讲一讲纯数字字符串 和 特殊字符(boolean,null, undefined, infinity, NaN)等
1. 纯数字的字符串也可以运算。只不过除了加法意外,都会进行隐式转换。 就是说我们不需要把它们进行格式转换,可以直接计算。
例如:
console.log ( "20" - 2); //result: 18
console.log ( "20" * 2); //result: 40
console.log ( "20" / 2); //result: 10
console.log ( "20" % 2); //result: 0
2. 特殊字符 true, false, null 在进行乘法,加法同样会进行隐式转换。
它会将 true = 1; false=0; null=0;
例如:
console.log ( 5 * true); //result: 5 console.log ( 5 * false); //result: 0 console.log ( 5 * null); //result: 0 console.log ( 5 + true); //result: 6 console.log ( 5 + false); //result: 5 console.log ( 5 + null); //result: 5
3. undefined和其他字符粗汉与数字进行数学运算(除了加法),结果都是NaN(not a number)
例如:
console.log ( 5 * undefined); //result: NaN console.log ( 5 * "Hello"); //result: NaN
但是 如果是进行加法:
console.log ( 5 + undefined); //result: NaN console.log ( 5 + "Hello"); //result: 5Hello (这里是拼接)
同样,如果NaN与数字进行数学运算,结果还是NaN:
例如:
console.log ( 1 + NaN); //result: NaN console.log ( 1 - NaN); //result: NaN console.log ( 1 * NaN); //result: NaN console.log ( 1 / NaN); //result: NaN console.log ( 1 % NaN); //result: NaN
Infinity与数字进行数学运算,结果是什么呢?
例如:
console.log ( 1 + Infinity); //result: Infinity console.log ( 1 - Infinity); //result: -Infinity console.log ( 1 * Infinity); //result: Infinity console.log ( 1 / Infinity); //result: 0 console.log ( 1 % Infinity); //result: 1
如有错误,请留言指教,谢谢。