【笔记】JavaScript运算符及运算符优先级

JavaScript常用运算符简介

运算符也被称为操作符,是用于实现赋值,比较和执行算数运算等功能的符号.JavaScript中常用的运算符有:算数运算符、递增和递减运算符、比较运算符、逻辑运算符、赋值运算符。

一、算术运算符

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

算术符描述
+
-
*
/
%取模(取余)

注意:

  • 取余运算符的主要用途
    余数为0,说明这个数能被整除。
  • 算术运算符的优先级
    先乘除,后加减,有小括号先算小括号里面的
    例如:
//算术运算符,浮点数运算会有问题
	console.log(1 + 2);
	console.log(1 - 2);
	console.log(1 * 2);
	console.log(1 / 2);
	console.log(3 % 2); //取余(取模)
	console.log(3 % 5); //结果为3
	//浮点数在算术运算符里面会有问题
	console.log(0.2 + 0.3);
	console.log(0.07 * 100);  //7.000000000000001
	//不能直接拿着浮点数进行相比较是否相等
	var num = 0.1 + 0.2;
	console.log(num == 0.3);  //false
	//表达式、返回值
	console.log(1 + 1); //2 就是返回值
	var num = 1 + 1;   //在程序里面2 = 1 + 1,右边表达式计算完返回给左边
	console.log(num);

二、递增和递减运算符

需要反复给数字变量加或减去1,可以使用递增(++)和递减(–)运算符完成。在JavaScript中,递增(++)和递减(–)既可以放在变量前面又可以放在变量后面。放在变量前面时,称为前置递增(递减)运算符,放在变量后面,称为后置递增(递减)运算符。递增和递减运算符必须和变量配合使用。

  • 前置递增(递减)运算符
    比如++num就表示前置递增,就是自加1,类似于num = num + 1,但是++num写起来更简单。前置递增先自加1,后返回值,参与运算。递减和递增类似。
    例如:
//前置递增运算符,++写在变量前面,就是自加1
	var age = 10;
	++age;  //类似于age = age + 1;
	console.log(age);  //11
	//先自加1,后返回值
	var p = 10;
	console.log(++p + 10);  //21
  • 后置递增运算符
    比如num++表示后置递增,它也是自加1。但先返回原值,后自加1,不参与运算。
    例如:
//后置递增,也是自加1.
	var num = 10;
	num++;
	console.log(num);  //11
	//先返回原值,后自加1
	var p = 10;
	console.log(p++ + 10);  //20
	console.log(p);       //p=11
  • 前置递增和后置递增的小结
    ①变量都自加1
    ②单独使用时,运行结果一样
    ③与其他代码连用时,执行结果会不同。
    ④后置:先原值运算,后自加(先人后己),开发大多使用后置。
    ⑤前置:先自加,后运算(先己后人)
    案例:
    var a = 10;
	++a;        //前置递增,先自加1,在返回值 ++a=11,a=11
	var b = ++a + 2;  //++a = 11 + 1
	console.log(b);   //b=14
	
	var c = 10;
	c++;       //后置递增,先返回值,在自加1 c++ = 10, c=11
	var d = c++ + 2;  //c++ = 11,c=12
	console.log(d);    //d=13
	
	var e = 10;
	var f = e++ + ++e;  //e++ = 10,e=11;++e = 11 + 1
	console.log(f);     //f=10+12=22

三、比较运算符

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

运算符名称说明
>大于号
<小于号
>=大于等于号(大于或等于)
<=小于等于号(小于或等于)
==判等号(会转换数据类型)
!=不等号
=== 或 !==全等 要求值和数据类型都一致

例如:

//比较运算符
	console.log(2 > 3);//2大于3不成立,false
	console.log(1 < 2);//1小于2成立,true
	//在程序里面 == 是判断号,默认是数字型,会把字符串类型转换为数字型
	console.log(18 == '18');//true
	console.log('lynn' == 'EvenWong');  //==两边字符串长度不等,false
	console.log(2 >= 3);  //false
	console.log(2 <= 3);  //true
	//!= 不等号
	console.log(2 != 3);  //true
	console.log('lynn' != 'even');  //true
	//=== !== 全等号 值和数据类型要一致
	console.log(18 === '18');  //false
	console.log('asd' === 'asd');  //true
	

四、逻辑运算符

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

逻辑运算符说明
&&“逻辑与”,简称“与” and (两边都是真结果才为真)
ll“逻辑或”,简称“或”or (两边都为假结果才为假)
!(取反符)“逻辑非”,简称“非”not (取一个布尔值相反的值)
  • 短路运算(逻辑中断)

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

  • 逻辑与短路运算
    语法:表达式1 && 表达式2
    思路:如果表达式1的值为真,则返回表达式2;如果表达式1的值为假,则返回表达式1

  • 逻辑或短路运算
    语法:表达式1 || 表达式2
    思路:如果表达式1结果为真,则返回表达式1;如果表达式1为假,则返回表达式2
    例如:

//逻辑运算符
	//逻辑与“&&” and,两侧都为真,结果才是真,只要有一侧为假,结果就为假
	console.log(3 > 5 && 3 < 5);  //false
	console.log(3 > 2 && 3 < 5);  //true
	//逻辑或“||” or,两侧都为假,结果才为假,只要有一侧为真,结果就为真
	console.log(3 > 5 || 3 > 2); //true
	console.log(3 > 5 || 3 > 6);  //false
	//逻辑非“!” not
	console.log(!true); //false
	//短路运算(逻辑中断)
	//逻辑与短路运算:如果表达式1的值为真,则返回表达式2的值;如果表达式1的值为假,则返回表达式1的值
	console.log(123 && 456); //结果为456
	console.log(0 && 234);  //结果为0
	console.log(0 && 1 + 2 && 456 * 123456); //结果为0
	//逻辑或短路运算:如果表达式1为真,则返回表达式1;如果表达式1为假,则返回表达式2
	console.log(123 || 456);  //结果为123
	console.log(0 || 123 || 456 * 123);  //结果为123
	//逻辑中断会影响程序的运行结果
	var num = 0;
	console.log(123 || num++);  //结果为123
	console.log(num);  //num=0
//逻辑运算符练习
	var num = 7;
	var str = '我爱你~中国~';  //str.length=7
	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

五、赋值运算符

概念:用来把数据赋值给变量的运算符

赋值运算符说明及案例
=直接赋值 如:var userName=”我是值”
+=、-=加、减一个数后再赋值 如:var age=10;age+=6; //age=16
*=、/=、%=乘、除、取余后再赋值 如:var age=2;age*=3; //age=6

例子:

//赋值运算符
	var num = 10;
	num += 2;//num = num + 2;每次自加2
	console.log(num); //num=12
	var age = 2;
	age *= 5;  //age= age * 5
	console.log(age); //age=10

运算符优先级

优先级运算符顺序
1小括号()
2一元运算符++、–、!
3算术运算符先*、/、%后+、-
4关系运算符>、>=、<、<=
5相等运算符== ,!= , === ,!==
6逻辑运算符先&&后ll
7赋值运算符=
8逗号运算符
//运算符优先级
	//1、小括号()=false,2、一元运算符!()=true,3、关系运算符4>=6 fasle
	//4、相等运算符!=,true 5、逻辑与&& true 6、逻辑或 
	console.log( 4 >= 6 || '人' != '阿凡达' && !( 12 * 2 == 144 ) && true ); //结果为true
	var num = 10;
	//1、小括号()='22', 2、算术运算符/    3、相等运算符==、===   4、逻辑与
	console.log( 5 == num / 2 && ( 2 + 2 * num ).toString() === '22'); //结果为true
	
	var a = 3 > 5 && 2 < 7 && 3 == 4;
	console.log(a);   //a=false
	
	var b = 3 <= 4 || 3 > 1 || 3 != '2';
	console.log(b);  //b=true
	
	var c = 2 === '2';
	console.log(c);  //c=false
	
	var d = !c || b && a;
	console.log(d);  //d=true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值