运算表示行为,我们学习了基本的数据类型,通过运算我们可以操作事物。
例:蜗牛爬井,一口井10米,蜗牛白天爬3米,夜晚滑2米。蜗牛几天能爬出?详细解析一下!
//当前位置在井底 默认为0
var position = 0;
//加赋值1 表示爬行一米
position = position + 1;
//position++;自增长
console.log('往上爬了' + position + '步');
算术运算符
给定y = 3:
运算符 | 描述 | 例子 | 结果 |
---|---|---|---|
+ | 加 | x = y + 2 | x = 5 |
- | 减 | x = y - 2 | x = 1 |
* | 乘 | x = y * 2 | x = 6 |
\ | 除 | x = y / 2 | x = 1.5 |
% | 求余 | x = y % 2 | x = 1 |
++ | 累加 | x = ++y ; x = y++ | x = 4 ; x = 3 |
-- | 递减 | x = --y ; x = y -- | x = 2 ; x = 3 |
用于字符串的 + 运算 :
数值之间可以做+、-、*、/
,字符串只有 +
(连接),字符串做-、*、/
会有类型转换(详见第2节),非数字型字符串之间做-、*、/
得到NaN(详见 第二章 第1节 <数据类型>)。
//链接两个或多个字符串,str = "i was stunned by my own cleverness!" 我被自己的智商惊呆了
str1 = "i was stunned";
str2 = " ";
str3 = "by my own cleverness!";
str = str1 + str2 + str3; //或者直接写成 str = str1 + " " + str3
取模运算符
- 运算规则:两个数相除后去余数
- 结果分析:对10取模得到一个不超过10的数
- 应用场景:防止数组越界
//使用取模运算符,防止数组越界
运算符优先级
在一个表达式中可能包含多个有不同运算符连接起来的,不同的运算顺序可能得出不同结果甚至出现错误运算错误,必须有先后次序,才能保证运算结果的正确性、唯一性。
下表按从最高到最低的优先级列出JavaScript常见运算符(其中一些会在接下来的课程中一一学到)。具有相同优先级的运算符按从左至右的顺序求值
运算符 | 描述 | ||
---|---|---|---|
.、()、[ ] | 字段访问、函数调用及表达式分组、数组下标 | ||
++、--、! | 自增、自减、逻辑非 | ||
*、/、% | 乘法、除法、取模 | ||
+、- | 加法、减法 | ||
<、<=、>、>=、instanceof | 小于、小于等于、大于、大于等于、instanceof | ||
==、!=、===、!== | (不严格的)等于、(不严格的)不等于、严格等于、严格的不等于 | ||
&& | 逻辑与 | ||
\ | \ | 逻辑或 | |
?: | 条件运算符 | ||
=、+=、-=、*=、/=、%= | 赋值运算符 |
()
的优先级最高,在复合运算中,可用圆括号()
改变运算优先级
var a = 2 + 3 * 5 //乘法优先级高于加法
var b = (2 + 3)/(5 -3) //圆括号的优先级最高