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

学习目标:

1.什么是表达式

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

2.JavaScript操作符的分类

  • 算数操作符

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


<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先返回递增知乎的值


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

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


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

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


<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>
  • 逻辑操作符
  • 赋值操作符

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


<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>
  • 比较操作符
    JavaScript学习记录之js算数操作符_第1张图片
    说明: == 为 等于(值相等)、===全等(数据类型与值都相等)、!=不等、!==不全等

== 、 ===


<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>

!== 、 !===


<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.


<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

<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后,则返回第二个操作数(当第一个值被转换为布尔值时,就会返回第二个值)

<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)

<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。


<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

<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>

!:非

  • 无论操作数是什么数据类型,逻辑非都会返回一个布尔值

<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>
  • !!同时使用两个逻辑非操作符时:
    第一个逻辑非操作会基于无论什么操作数返回一个布尔值,
    第二个逻辑非则对改布尔值求反

<html>
<head>
	<title>逻辑运算title>
head>
<body>
	<script type="text/javascript">
	console.log(!!false); //false
	console.log(!!""); //false
	script>
body>
html>

你可能感兴趣的:(前端,JavaScript)