黑马pink JavaScript笔记(5)-运算符(自用)

1.运算符

运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。

JavaScript中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符

2.算术运算符

(1)概念:

算术运算使用的符号,用于执行两个变量或值的算术运算。

运算符描述实例
+10 + 20 = 30
-10 - 20 =-10
*10 * 20 = 200
/10 / 20 = 0.5
%取余数(取模)返回除法的余数 9 % 2 = 1
console.log(1 + 1);
console.log(10 - 1);
console.log(10 * 100);
console.log(10 / 2);
console.log(10 % 3);//1
console.log(3 % 5);//3
(2)浮点数的精度问题

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。

  • 浮点数在算数运算里面会有问题
console.log(0.1 + 0.2);//0.30000000000000004
console.log(0.07 * 100);//7.000000000000001
  • 不能直接拿着浮点数来进行相比较 是否相等
  • 以后开发中,尽量避免使用浮点数,因为有进度损失
var num = 0.1 + 0.2;
console.log(num == 0.3);//false

👻怎么判断一个数能够被整除呢?

它的余数是0 就说明这个数能被整除, 这就是 % 取余运算符的主要用途

(3)表达式和返回值

由数字、运算符、变量等组成的式子,我们称之为表达式 如 1 + 1

表达式最终都会有一个结果,返回给我们,我们称为返回值

console.log(1 + 1); // 2就是返回值     

🎉在我们程序里面 2 = 1 + 1 把我们的右边表达式计算完毕 就把返回值给左边

var num = 1 + 1;

3.递增递减运算符

(1)前置递增运算符

++num 前置递增,就是自加1,类似于 num = num + 1,但是 ++num 写起来更简单。

使用口诀:先自加,后返回值

	<script>
        // 1.想要一个变量自己加一  num = num + 1 比较麻烦
        var num = 1;
        num = num + 1;
        console.log(num);//3
        // 2.前置增运算符 ++ 写在运算符的前面
        var age = 10;
        ++age;//类似于 age = age + 1;
        console.log(age);
        // 3.先加一(先自加),后返回值
        var p = 10;
        console.log(++p + 20);//31
    </script>
(2)后置增运算符

num++ 后置递增,就是自加1,类似于 num = num + 1 ,但是 num++ 写起来更简单。

使用口诀:先返回原值,后自加

	<script>
        var num = 10;
        num++;
        console.log(num);//num = num + 1   11
        // 1.前置自增和后置自增如果单独使用 其效果是一样的
        // 2.后置自增的口诀::先返回原值,后自加
        var age =10;
        console.log(age++ + 10);//20
        console.log(age);//11
    </script>

练习

var a = 10;
++a;//11
var b = ++a + 2;//11 + 1 + 2
console.log(b);//14

var c = 10;
c++;//11
var d = c++ + 2;//11 + 2
console.log(d);//13

var e = 10;
var f = e++ + ++e;
//1. e++ = 10 e = 11   2. e = 11  ++e =12
console.log(f);//21

小结:

  • 前置递增和后置递增运算符可以简化代码的编写,让变量的值 + 1 比以前写法更简单

  • 单独使用时,运行结果相同

  • 与其他代码联用时,执行结果会不同

  • 后置:先原值运算,后自加(先人后己)

  • 前置:先自加,后运算(先已后人)

  • 开发时,大多使用后置递增/减,并且代码独占一行,例如:num++; 或者 num–;

4.比较运算符

(1)概念

比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true / false)作为比较运算的结果。

运算符名称说明案例结果
<大于1 < 2true
>小于1 > 2false
>=大于等于2 >= 2true
<=小于等于3 <= 2false
==判等号37 == 37true
!=不等号37 != 37false
===全等 要求值和类型都一致37 === ‘37’false
!==不全等37 !== ‘37’true
console.log(2 > 3);//false
console.log(2 < 3);//true
console.log(3 == 5);//false
console.log('张三' !== '李四');//true
console.log(20 == 20);//true
console.log(20 == '20');//true
console.log(37 !== '37');//true
(2)=小结
  • = 赋值 把右边的值赋给左边

  • == 判断 判断两边的值是否相等(注意此时有隐式转换)

  • === 全等 判断两边的值和数据类型是否完全相同

5.逻辑运算符

(1)概念:

逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断

逻辑运算符说明案例
&&“逻辑与”,简称“与” andtrue && false
||“逻辑或”,简称“或” ortrue || false
!“逻辑非”,简称“非” not! true
(2) 逻辑与&&

两边都是 true才返回 true,否则返回 false

// 1.逻辑与 && and 两侧都为true,结果才是true  只要有一侧为 false 结果就为false
console.log(10 > 50 && 10 < 20);//false
console.log(10 < 50 && 10 < 20);//true
(3)逻辑或 ||

两边都为 false 才返回 false,否则都为true

// 2.逻辑或 || or  两侧都为false,结果才为false 只要有一侧为true 结果就是true
console.log(10 > 50 || 10 < 20);//true
console.log(10 > 50 || 10 > 20);//false
(4)逻辑非 !

逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false

// 3.逻辑非 ! not 
console.log(!true);//false
(5)短路运算(逻辑中断)

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

// 1.用我们的布尔值参与的逻辑运算  true && 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 && 256 * 56789);//0
console.log('' && 1 + 2 && 256 * 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

6.赋值运算符

(1)概念

用来把数据赋值给变量的运算符。

赋值运算符说明案例
=直接赋值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;// 相当于 num = num + 5;
        console.log(num);
        var num1 = 30;
        num1 -= 5;// 相当于 num = num - 5;
        console.log(num1);
        var age = 2;
        age *= 3;// 相当于 num = num * 5;
        console.log(age);
    </script>

7.运算符优先级

优先级运算符顺序
1小括号()
2一元运算符++、–
3算数运算符先*/%后+、-
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符先&& 后
7赋值运算符=
8逗号运算符,
console.log(4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true);
// 分为四部分
// 4 >= 6   为false
// '人' != '阿凡达'  为true
// !(12 * 2 == 144) 为true
// true     为true
// 先&&  三个皆是 true  为true
// 后||  false 和true   最终为true

var num = 10;
console.log(5 == num / 2 && (2 + 2 * num).toString() === '22');// true

var a = 3 > 5 && 2 < 7 && 3 == 4;
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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值