四、JavaScript 运算符

一、算术运算符

<script>
	console.log(1 + 1);  // 2
	console.log(1 - 1);  // 0
	console.log(1 * 1);  // 1
	console.log(1 / 1);  // 1
	// 1. % 取余(取模):判断是否能被整除
	console.log(4 % 2);  // 0
	console.log(5 % 3);  // 2
	console.log(3 % 5);  // 3
	// 2. 浮点数  算术运算里面会有问题(最高精度17位小数)
	console.log(0.1 + 0.2);  // 0.30000000000000004
	console.log(0.07 * 100);  // 7.000000000000001
	// 3. 我们不能直接拿着浮点数来进行相比较  是否相等
	var num = 0.1 + 0.2;
	console.log(num == 0.3);  // false
</script>
表达式和返回值
<script>
	// 是由数字、运算符、变量等组成的式子  我们称之为表达式  1 + 1
	console.log(1 + 1);  // 2 就是返回值
	// 1 + 1 = 2
	// 在我们程序里面  2 = 1 + 1 把我们的右边表达式计算完毕把返回值给左边
	var num = 1 + 1;
</script>
前置自增运算符
<script>
	// 1. 想要一个变量自己加 1    num = num + 1 比较麻烦
	var num = 1;
	num = num + 1;  // ++num
	console.log(num);  // 2
	// 2. 前置递增运算符  ++ 写在变量的前面
	var age = 10;
	++age;  // 类似于 age = age + 1
	console.log(age);  // 11
	// 3. 先加1 后返回值
	var p = 10;
	console.log(++p + 10);  // 21
</script>
后置递增运算符
<script>
	var num = 10;
	num++; // num = num + 1 ++num;
	console.log(num);  // 11
	// 1. 前置自增和后置自增如果单独使用  效果是一样的
	// 2. 后置自增 口诀:先返回原值 后自加1
	var age = 10;
	console.log(age++ + 10);  // 20
	console.log(age);  // 11
</script>
递增运算符练习
<script>
    var a = 10;
    ++a;  // ++a  11    a = 11
    var b = ++a + 2;  // a = 12  ++a = 12
    console.log(b);  // 14
    
    var c = 10;
    c++;  // c++ = 11   c = 11
    var d = c++ + 2;  // c++ = 11  c = 12
    console.log(d);  // 13
    
    var e = 10;
    var f = e++ + ++e;  // 1. e++ = 10  e = 11  2. e = 12  ++e = 12
    console.log(f);  // 22
    // 后置自增  先表达式返回原值 后面变量再自加1
</script>

二、比较运算符

<script>
	console.log(3 >= 5);  // false
	console.log(2 <= 4);  // true
	// 1. 我们程序里面的等于符号 是 == 默认转换数据类型 会把字符型的数据转换为数字型 只要求值相等就可以
	console.log(3 == 5);  // false
	console.log('python' == 'java');  //false
	console.log(18 == 18);  // true
	console.log(18 == '18');  // true
	console.log(18 != 18);  // false
	// 2. 我们程序里面有全等 一模一样 要求 两侧的值 还有 数据类型完全一致才可以 true
	console.log(18 === 18);  // true
	console.log(18 === '18');  // false
	
	console.log('-----------------');
	// 课堂练习
	var num1 = 10;
	var num2 = 100;
	var res1 = num1 > num2;
	var res2 = num1 == 11;
	var res3 = num1 != num2;、
	console.log(res1);  // false
	console.log(res2);  // false
	console.log(res3);  // true
</script>

三、逻辑运算符

--
&&“逻辑与”,简称"与" and true && false
\\“逻辑或”,简称"或" or true \\ false
!“逻辑非”,简称"非" not ! true
<script>
	// 1. 逻辑与 &&  and 两侧都为true 结果才是 true  只要有一侧为false  结果就为false
	console.log(3 > 5 && 3 > 2);  // false
	console.log(3 < 5 && 3 > 2);  // true
	// 2. 逻辑或 ||  or 两侧都为false 结果才是假 false  只要有一侧为true 结果就是true
	console.log(3 > 5 || 3 > 2);  // true
	console.log(3 > 5 || 3 < 2);  // false
	// 3. 逻辑非 !  not
	console.log(!true);  // false
</script>
逻辑运算符练习
<script>
	var num = 7;
	var str = "我爱你~中国~";
	console.log(num > 5 && str.length >= num);  // true
	console.log(num < 5 && str.length >= num);  // false
	console.log(!(num < 10));  // false
	console.log(!(num < 10 || str.length == num));  // false
</script>
短路运算(逻辑中断)

短路运算的原理︰当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

<script>
	// 1.用我们的布尔值参与的逻辑运算  true &8 false == false
	// 2. 123 && 456 是值 或者是 表达式 参与逻辑运算?
	// 3.逻辑与短路运算 如果表达式1 结果为真 则返回表达式2 如果表达式1为假 那么返回表达式1
	console.log(123 && 456);  // 456
	console.log(0 && 456);  // 0
	console.log(0 && 1 + 2 && 456 * 56789);  // 0
	console.log('' && 1 + 2 && 456 * 56789);  // ''
	// 如果有空的或者否定的为假 其余是真的 0 '' null undefined NaN
	// 4.逻辑或短路运算 如果表达式1 结果为真 则返回表达式1 如果表达式1 结果为假 则返回表达式2
	console.log(123 || 456);  // 123
	console.log(123 || 456 || 456 + 123);  // 123
	console.log(0 || 456 || 456 + 123);  // 456
	// 逻辑中断很重要 它会影响我们程序运行结果
	var num = 0;
	console.log(123 || num++);  // 123
	console.log(num);  // 0
</script>

四、赋值运算符

---
=直接赋值var usrName = “我是值”;
+=、-=加、减一个数后在赋值var age = 10; age+=5; // 15
*=、/=、%=乘、除、取模后在赋值var age = 2; age*=5; // 10
<script>
	var num = 10;
	// num = num + 1; num++
	// num = num + 2;  // num += 2;
	num += 5;
	console.log(num);  // 15
	var age = 2;
	age *= 3;
	console.log(age);  // 6
</script>

五、运算符优先级

优先级运算符顺序
1小括号()
2一元运算符++ – !
3算数运算符先*/%后±
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符先&& 后 \
7赋值运算符=
8逗号运算符
  • 一元运算符里面的逻辑非优先级很高
  • 逻辑与比逻辑或优先级高
<script>
	// 练习 1
	console.log(4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true);  // true
	var num = 10;
	console.log(5 == num / 2 && (2 + 2 * num).toString() === '22');  // true
	console.log('-----------');
	
	// 练习 2
	var a = 3 > 5 && 2 < 7 && 3 == 4;  // false
	console.log(a);  // false
	
	var b = 3 <= 4 || 3 > 1 || 3 != 2;
	console.log(b);  // true
	
	var c = 2 === "2";
	console.log(c);  // false
	
	var d = !c || b && a;
	console.log(d);  // true
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shi_jiaye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值