JavaScript学习记录之js算数操作符

学习目标:

1.什么是表达式

  • 表达式:将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来,有意义的式子称为表达式。 (简单的说就是±/*以及比较的运算)

2.JavaScript操作符的分类

  • 算数操作符

加:+
减:-
乘:*
除:/
取余:%

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var num1 = 10,num2 = 5;
		alert(num1+num2);  //15
		//最简单的算数运算
	</script>

重点:
1.递增:++a与a++都是对a进行递增的操作
区别:++a先返回递增知乎的值

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a=1;
		alert(++a); //2
		//先进行递增再返回值(本身为1,++在前,就是先加在返回)
	</script>

a++则是先返回a本身的值,在本身再进行递增

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a=1;
		alert(a++); //1
		//返回自身再进行递增
	</script>

2.递减的操作也是一样的
在算数操作符里,还有一个叫隐式转换

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var num1 = 10,num2 = "5";
		//隐式转换
		alert(num1*num2);  //50
		alert(num1-num2); //5
		
		//如果是字符串呢
		var str = "c";
		alert(num1 - str) //NaN
		//当你使用+号时
		alert(num1+str); //10+c
		//这是因为浏览器把+看成了连接符
	</script>
  • 逻辑操作符
  • 赋值操作符

简单的赋值:=
复合赋值:+=、-=、*=、/=、%=

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var a = 5;
		//a = a +5 麻烦的写法
		a+=5;
		alert(a);
		//他们的结果都为10,其他都一样操作
		var str = "Hello"
		str+="world"
		alert(str)  //起到连接作用
	</script>
  • 比较操作符
    在这里插入图片描述
    说明: == 为 等于(值相等)、===全等(数据类型与值都相等)、!=不等、!==不全等

== 、 ===

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var x = 10, y = "10";
		z = x ==y; //只比较值
		console.log(z) //true
		z= x === y; //比较值同时也比较类型
		console.log(z) //false
	</script>
</body>
</html>

!== 、 !===

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var x = 10,y="10";
		//!=为取反操作
		z = x != y  //false
		z = x !== y; //true
		console.log(z)
	</script>
</body>
</html>
  • 三元操作符

语法:条件?执行代码1:执行代码2
说明: 可以替代简单的if语句;(效率高且更加简洁)
如果条件成立,执行代码1,否则执行代码2.

<!DOCTYPE html>
<html>
<head>
	<title>运算</title>
</head>
<body>
	<script type="text/javascript">
		var soce = 85;
		var result = (soce >= 60)?"及格":"不及格";
		console.log(result); //及格
		//soce>=60为true,返回第一条执行代码。
	</script>
</body>
</html>
  • 逻辑操作符
    &&:与
    只要有一个条件不成立,就会返回false
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	var num1 = 10,num2 = 20,num3 = 30;
	console.log(num1<num2 && num2 ==num3);//false
	console.log(num2 < num3 && num3 > num1); //true
	</script>
</body>
</html>

说明: 在有一个操作数不为布尔值得情况,逻辑与操作就一定返回值,此时它遵循下列规则:

  • 如果第一个操作数隐式转换为true后,则返回第二个操作数(当第一个值被转换为布尔值时,就会返回第二个值)
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
//之前讲过所有的字符串除了""为false,其余都为true,所有数字除0以外,其余全为true
	var num3 = 30,
		str = "welcome";
		console.log(str && num3) //30(返回第二个操作数)
	console.log(80 && 50 && "hello"); //hello 多于两位,则返回最后一位
	</script>
</body>
</html>
  • 如果第一个操作数隐式转换为false,则返回第一个操作数值
    (有一个数为null就返回null,有undefined就返回undefined,有NaN就返回NaN)
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	var n =null, num3 = 20;
	colsole.log(n && num3) //null
	</script>
</body>
</html>

||:或
只要有一个为true,就返回true。

<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(0 || "abc") //abc 
	</script>
</body>
</html>

说明: 在有一个操作数不为布尔值得情况,逻辑与操作就一定返回值,此时它遵循下列规则:

  • 如果第一个操作数隐式转换为true后,则返回第二个操作数(当第一个值被转换为布尔值时,就会返回第二个值)
    如果两个操作数null,则返回null
    如果两个数为NaN,则则会返回Nan
    如果两个数为undefined,则返回undefined
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log("hello" || 0); //hello
	console.log(99 || 0 || "abc"); //99
	console.log("" || 0 || "abc"); //abc
	</script>
</body>
</html>

!:非

  • 无论操作数是什么数据类型,逻辑非都会返回一个布尔值
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(!false); //true
	console.log(!88); //false
	console.log(!0); //true
	console,log(!null) //true
	</script>
</body>
</html>
  • !!同时使用两个逻辑非操作符时:
    第一个逻辑非操作会基于无论什么操作数返回一个布尔值,
    第二个逻辑非则对改布尔值求反
<!DOCTYPE html>
<html>
<head>
	<title>逻辑运算</title>
</head>
<body>
	<script type="text/javascript">
	console.log(!!false); //false
	console.log(!!""); //false
	</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HsuVenChing

文章能帮你,那将是我最大的荣幸

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

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

打赏作者

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

抵扣说明:

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

余额充值