在js中可以使用哪些运算符对数据进行运算。
1:赋值运算符
2:算数运算符
1-1:复合赋值运算符
3:关系运算符
4:逻辑运算符
5:位运算符
6:条件运算符
设计到的概念:
1:运算符
2:操作数 1+1:参与运算符运算的数据。
+ :运算符
1 、1 操作数
3:表达式:1+1 就是一个表达式:
运算符和操作数的整体就称为表达式。
常量表达式:所有的操作数都是常量。
变量表达式:有操作数是变量。
4:返回值:
表达式的返回值:表达式计算得到的结果。
所有的计算,都是表达式或者是操作数的返回值参与的。
<script>
var num = 10;
num = num + 10 + 20;
</script>
概念:
一元运算符:只有一个操作数的运算符。 比如:+1 正数1
也称为单目运算符
二元运算符:需要两个操作数的运算符。比如:1+1
也称为双目运算符。
三元运算符:需要三个操作数的运算符。比如:条件运算符。 ? :
也称为三目运算符。
= : 赋值运算符
作用:将右边的操作数或者是表达式的返回值赋值给左边的变量或者是只读变量。
语法: 变量 = 表达式;
左边的变量:可以是变量,或者是 const修饰的变量。
右边的表达式:可以是返回任意类型结果的表达式。
注意:= 运算符在所有的运算符中的优先级最低。
赋值运算符最后做。
<script>
var num = 10 * 100;
</script>
算数运算符
算数运算符:
+:加
-:减
*:乘
/: 除
%: 取余
++:自增
++ : 自增运算符:对变量进行自增1的操作。
语法:
1:前缀模式: ++ num;
2:后缀模式: num ++;
后缀模式:后缀模式的表达式的返回值是自增之前的值。先返回后自增。
前缀模式:先自增,后返回。
–:自减
作用:对变量自减1.
语法同上。
模式同上。
<script>
//+ :既是一元运算符,也是二元运算符。
console.log (+5);
console.log (1 + 1);
//- : 既是一元运算符,也是二元运算符。
console.log (-5);
console.log (7 - 2);
//* :二元运算符。运算符的规则和数学中一样的。
console.log (3 * 3);
console.log (-3 * 3);
console.log (-3 * -3);
// / : 二元运算符 运算符的规则和数学中一样的。
//如果除不尽,就会有小数。
console.log (-5 / 2);//-2.5
console.log (3 / 2);//1.5
console.log (-5 / -3);//1.6666666666666667
// % 二元运算符。 a%b : a除以b所得的余数。结果的符号位取决于左边的值
console.log (5 % 3);//2
console.log (-5 % 7);//-5
console.log (-7 % -5);//-2
//除和取余的应用:
//随机的得到一个三位数。把每一个位上的数值打印出来。
const MIN = 100;
const MAX = 1000;
var ran = parseInt (Math.random () * (MAX - MIN) + MIN);
console.log (ran);
//123
var unit = ran % 10;
var decade = parseInt (ran / 10) % 10;
var hundred = parseInt (ran / 100);
console.log (`unit=${unit};decade=${decade};hundred=${hundred}`);
// ++ : 自增运算符:对变量进行自增1的操作。
var num = 0;
num = num++;
//1: num ++ 表达式的返回值是 0,然后num做自增1.num变成了1.最后将返回值0 赋值给num。
console.log (num);
num = 0;
console.log (num++ + num++ + num++);//3
console.log (num);//3
num = 0;
num = ++num;
console.log (num);
num = 0;
console.log (++num + num++ + ++num - ++num);//1
console.log (num);//4
num = 0;
console.log (num++ - ++num + num--);//0
console.log (num);//1
</script>
复合赋值运算符
+=
-=
*=
/=
%=
<script>
var num = 0;
num = num + 5;
num += 5;
num = num - 5;
num -= 5;
num = num * 5;
num *= 5;
num = num / 5;
num /= 5;
num = num % 5;
num %= 5;
console.log (num);
//对某个变量实现自增一
num++;
++num;
num = num + 1;
num += 1;
</script>
关系运算符
> < >= <= == !=
1:一共有6个关系运算符。都是双目运算符。需要两个操作数。
2:作用:用来比较两个操作数的关系是否成立的?
3:返回:如果关系成立,关系表达式,返回true。不成立,返回false。
关系表达式返回结果为布尔值。
<script>
var num = 0;
console.log (num++ > 0);//false
console.log (num > 0);//true
console.log (num < ++num);//true
console.log (num >= num++);//true
console.log (num == num++);//true
console.log (num != --num);//true
</script>
逻辑运算符
逻辑运算符:参与逻辑运算的操作数必须都是布尔值。
如果操作数不是布尔值。那么会进行类型的转换,转换为布尔值。
逻辑表达式的返回值都是布尔值。
&&:逻辑与:二元运算符。
||: 逻辑或:二元运算符。
!:逻辑非,逻辑取反。:单目运算符。
逻辑与 && 逻辑或,都具有短路的特点。
逻辑与的短路:当有一个操作数的结果为false,那么其他的操作数将直接被短路掉,不再执行。
逻辑或的短路:当有一个操作数的结果为true,那么其他的操作数将被短路,不再执行。
<script>
//&& 逻辑与。规则:有假则假,全真则真。
//表达的是并且的意思。
console.log (false && false);//false
console.log (true && false);//false
console.log (false && true);//false
console.log (true && true);//true
var num = 0;
console.log ((num < ++num) && (num == num ++));//true
console.log ("---------------")
//|| 逻辑或。规则:有真则真,全假则假。
//表达的是或者的意思。
console.log (false || false);//false
console.log (true || false);//true
console.log (false || true);//true
console.log (true || true);//true
//! : 逻辑非。 有真则假,有假则真。
console.log (!true);//false
console.log (!false);//true
console.log ("---------------")
//随机的得到一个布尔值。保存到变量中。
//再将该该值的反值赋值给它。
const MIN = 0;
const MAX = 2;
var ran = parseInt(Math.random()*(MAX-MIN)+MIN);
var bool = false;
if(ran == 1){
bool = true;
}
console.log (bool);
bool = !bool;
console.log (bool);
console.log (!(ran < ran ++));//true
//短路的例子
var num = 0;
console.log (num <= 0 && num ++ == 0);//false
console.log (num);
console.log (num < 1 || num ++ == 0);
console.log (num);
</script>