今天我来谈一下我对于JavaScript的运算符的见解。运算符这个概念我们不陌生,数学中的“+,-,*(这个符号是乘号),/(这个符号是除号),=”这五个运算符是我们最常见的;我们今天说一下我们最常用的;
1、JavaScript的算术运算符;"+, -, *, /"
我们首先通过一个表格来看一下这几个运算符都代表什么含义:
运算符 | 含义值 |
+ |
1、加法 2、拼接 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 求余数 |
看下面这这组代码讲的是在JavaScript中的输入方法:
+ - * / a++ a-- ++a --a var a = 5 % 3; // a=2 取模就是我们常说的求余数;5/3 商1余2; a = a + 1; // 简写 a += 1 a = a - 1; // 简写 a -= 1 a = a * 1; // 简写 a *= 1 a = a / 1; // 简写 a /= 1 a = a % 1; // 简写 a %= 1 a++ 等同于 a = a + 1; a-- 等同于 a = a - 1; var a = 1; var b = a++ + ++a; // 第一个 a = 1 , 第二个 a = 3 结果是 4 ++a 等同于 a = 1 + a; --a 等同于 a = -1 + a; () 能改变运算符的优先计算等级
我通过几个简单的例子演示下它们的用法:
// + 运算符 alert(5+2); // 7 var a = 1; var b = a + 2; alert(b); // 3 // - 运算符 alert(7-1); // 6 var a = 3; var b = a -2; alert(b); // 1 // * 运算符 alert(3*2); // 6 var a = 5; var b = a*2; alert(b); // 10 // / 运算符 alert(9/3); // 3 var a = 6; var b = a/2; alert(b); // 3 // % 运算符 alert(7%3); // 1 var a = 10; var b = a%3; alert(b); // 1
注意a++ 与++a和a-- 与 --a的区别:
// a-- 等同于 a-=1 区别是这个就是每次 -1 先赋值后运算。 // a-- 等同于 a+=-1 先运算后赋值
var a = 5; alert(a-=1); // 4 var a = 5; alert(a--); // 5 var a = 5; alert(--a); // 4 // 思考这个结果是多少 var a = 1; var b = a++ + ++a; // 第一个 a = 1 , 第二个 a = 3 结果是 4
/* a++ 我们可以这样理解*/
var a = 1;
alert(a);a += 1;
//按照代码的读取格式,从上向下,从左到右,这样的话;当代码读到 alert 的时候就会先输出 a 的值也就是 1 ,然后在进行 +1 的运算。a-- 以为是同样的道理。
2、JavaScript的赋值运算符:
对于赋值我们很熟悉了;例如 :
var a = 1;//我们把数字 1 赋值给了变量 a ;
//JavaScript中 “=” 号并不是我们数学中的等于的意思,而是代表赋值;将一个值赋予给另外的一个值;我们还可以这样赋值:
var a = 2;
var b = a;
alert(b);//输出的值是2;我们为变量 a 赋值了数字2;然后我们还可以把变量 a 在赋值给变量 b ;
3、JavaScript的比较运算符;
在数学中我们常用的比较符有:大于号(>),小于号(<),等于号(=),大于等于(>=);小于等于(<=),不等于(!=);后面的小括号里面的是在计算机里的书写方法;
需要注意的是在JavaScript中表示等于的符号是“==”;两个等号代表相等;“===”三个等号代表全等具体的我会在下面的例子来说明;
var a = 123;//这个是数字; var b = '123';//这个是字符串; if(a == b){ alert('两个值相等'); }else{ alert('两个值不相等') } //这个会输出两个值相等; if(a === b){ alert('两个值相等'); }else{ alert('两个值不相等') } //这个会输出两个值不相等; /* *这是为什么呢, == 号只要是值相等那么就会判定这两个变量相等;但是 === 需要值的类型也相同! */
下面的例子说一下其他的比较符:
// > 大于 var a = 6; var b = 3; if(a > b){ alert('a 确实大于 b'); }else{ alert('a 不大于 b'); } // < 小于 var a = 6; var b = 3; if(a < b){ alert('a 确实大于 b'); // 为真才走的分支 }else{ alert('a 不大于 b'); // 为假走的分支 } // == 等于 var a = 6; var b = 3; if(a == b){ alert('a 确实等于 b'); }else{ alert('a 不等于 b'); } // === 全等于 var a = 3; var b = '3'; if(a == b){ // 注意这里是 == 等于 alert('a 确实全等于 b'); }else{ alert('a 不全等于 b'); } var a = 3; var b = '3'; if(a === b){ // 注意这里是 === 全等于 alert('a 确实全等于 b'); }else{ alert('a 不全等于 b'); } // != 不等于 var a = 3; var b = '3'; if(a != b){ // 注意这里是 != 不等于 alert('a 不等于 b'); }else{ alert('a 等于 b'); } var a = 3; var b = 7; if(a != b){ // 注意这里是 != 不等于 alert('a 不等于 b'); }else{ alert('a 等于 b'); } // !== 不全等 var a = 3; var b = '3'; if(a != b){ // 注意这里是 != 不等于 alert('a 不等于 b'); }else{ alert('a 等于 b'); } var a = 3; var b = '3'; if(a !== b){ // 注意这里是 !== 不全等于 alert('a 不全等于 b'); }else{ alert('a 全等于 b'); } // >= 大于等于 var a = 3; var b = 3; if(a > b){ alert('你说的对'); }else{ alert('你说的不对'); } var a = 3; var b = 3; if(a >= b){ alert('你说的对'); }else{ alert('你说的不对'); } // <= 小于等于 var a = 3; var b = 3; if(a < b){ alert('你说的对'); }else{ alert('你说的不对'); } var a = 3; var b = 3; if(a <= b){ alert('你说的对'); }else{ alert('你说的不对'); }
3、逻辑运算符:
逻辑运算符指的是:与(&&)、或(||)、 非(!);这三种
多个条件组合, 结果也是 true(真) 或 false(假)
&& 与 &&运算符两边 都为 true 结果(真) 才为 true(真)
|| 或者 || 运算符两边 只要有一个为 true(真) 就为 true(真)
! 非 取反
下面的看一些小例子:
// && 并且 var a = 'yes'; var b = 'no'; if(a == 'yes' && b == 'yes'){ // 两个判断必须都为真 alert('你是对的'); }else{ alert('你是错的'); } var a = 'yes'; var b = 'yes'; if(a == 'yes' && b == 'yes'){ alert('你是对的'); }else{ alert('你是错的'); } // || 或者 var a = 'yes'; var b = 'no'; if(a == 'yes' || b == 'yes'){ // 其中有一个为真就是真 alert('你是对的'); }else{ alert('你是错的'); } var a = 'yes'; var b = 'yes'; if(a == 'yes' || b == 'yes'){ // 两个都为真更是真, 其实第一个为真第二个就不在去判定 alert('你是对的'); }else{ alert('你是错的'); } // ! 非 var a = 'yes'; if(a != 'no'){ alert('你是对的'); }else{ alert('你是错的'); }
4、其他运算符:
三元运算符:a ? b : c
var a = 1, b = 2; a>2 ? alert('yes'): alert('no'); //no;我们可以把它看成 if ... else 的简写形式 !
if(a>2){
alert('yes')
}else{
alert('no')
}