一. 表达式
学习运算符之前, 先学习下什么叫表达式.
表达式是用于JavaScript
脚本运行时进行计算的式子
可以包含常量、变量、运算符。
表达式可以任意复杂。
表达式的值就是经过一系列运算之后的最终值。
var n = 10;
var m = 30;
alert(n + m); // n+m就是一个表达式。
二. 算术运算符
+, - , *, /
2.1 +
运算符
这个运算符有 2 个含义:
数学上的加法
当两边都不是字符串的时候, 就是普通的数学加法. 如果有不是数字的则使用前面说的类型转换隐式的转化为数字.
如果有一个是
NaN
, 结果就是NaN
.有一个特殊的地方: 隐式转的时候会把
null -> 0
切记.
console.log(1 + 2); // 数学的加法 console.log(true + 1); // 2 把true转换为数字之后再加 console.log(undefined + 100); // NaN 因为: undefined -> NaN console.log(null + 100); // 100 因为: null->0 console.log(NaN + 1); // NaN
字符串连接
- 两边至少一个是字符串的时候, 这个时候就是字符串连接.
console.log(1 + "2"); // 12 字符串连接, 因为有一个是字符串 console.log(true + "2"); // true2 字符串连接, 因为有一个是字符串 console.log(undefined + "100"); // undefined100 字符串连接 console.log(null + "100"); // null100 console.log(NaN + "1");// NaN1
2.2 -, *, /
运算符
这个三个运算符就是数学上的算法.
会把两边都隐式转换成数字再进行计算.
如果有一个是NaN
, 则结果就是NaN
.
2.3 %
运算符
这个运算符也叫取模, 或者取余运算符.
数学上的含义就是计算两个数相除之后的余数.
一般只用于两个整数进行取余.(浮点数也可以, 但是一般没啥实际用处)
console.log(100 % 2); // 0
console.log(91 % 2); // 1