Javascript运算符操作

一、作用

执行特定逻辑运算

二、分类:按功能划分                  算数运算符("+" , "-"  ,"*"  ,"/" , "%)

                                                    位运算符

                                                    关系运算符

                                                    逻辑运算符

                 按操作数个数划分        单目运算符(i++ , !)

                                                    双目运算符(a+b , a-b)

                                                    三目运算符(a>b?1:0)

三、优先级

先算优先级高的后优先级底的

优先级相同的就从左到右执行

                  

四、算数运算符(+-*/%和数学上的运算是一样的)

    

4.1.1 + 比较不同它还可以做为两个字符串的链接符

	<script type="text/javascript">
		var num='12'+100;
		console.log(num);//12100
		console.log(typeof num);//number
	</script>

4.1.2 如果非number类型运算时会先转换成number类型后运算

	<script type="text/javascript">
		var num=true+100;
		console.log(num);//101
		console.log(typeof num);//number
	</script>
	<script type="text/javascript">
		var num=null+100;
		console.log(num);//101
		console.log(typeof num);//number
	</script>

4.1.3 任何值和NaN做运算都为NaN

	<script type="text/javascript">
		var num=NaN+100;
		console.log(num);//101
		console.log(typeof num);//number
	</script>

4.2.1 运算符时 分母为零输出infinite

4.2.3 % 范m/n取余时 n=0  返回nan

                                  m=0 返回0

                                  m>n 返回正常取余的值

                                 m<n 返回m

五、正负运算符

	<script type="text/javascript">
		var num=100;
		num=+num;
		console.log(num);//nan
	</script>
        <script type="text/javascript">
		var str=null;
		var res=str;
		console.log(res);//0
	</script>

六、赋值运算符

“=”右边是常量,左边是变量  X=10;

"+=" a+=1   相当于a=a+1

"-=" a-=1   相当于a=a-1

"*=" a*=1   相当于a=a*(1)

"/=" a/=1   相当于a=a/(1)

七、自增运算符

7.1 无论运算符在前还是在后变量在自身基础上都会改变

	<script type="text/javascript">
		var i=10;
		i++; //++i也输出11  --i和i--输出9
		console.log(i);//11
	</script>

7.2 i++和i--是先用i当前值作为表达式的值,在进行自身自增自减就是“先使用后改变”

	<script type="text/javascript">
		var a1=10;
		var a2=20;
		var res=(a1++)+(a2++);
		console.log(res);//30
		console.log(a1);//11
		console.log(a2);//21

	</script>
7.3 ++i和--i是先用i当前值进行自身自增自减后作为表达式的值,“先改变后使用”
	<script type="text/javascript">
		var a1=10;
		var a2=20;
		var res=(++a1)+(++a2);
		console.log(res);//32
		console.log(a1);//11
		console.log(a2);//21

	</script>

八、关系运算符(返回值为true或false)

8.1 两边都是数值进行比较

	<script type="text/javascript">
		var a=100;
		var b=100;
		console.log(a<b);//false
		console.log(a>b);//false
		console.log(a<=b);//true
		console.log(a>=b);//true
		console.log(a==b);//true  比较数值大小相等是返回true
		console.log(a!=b);//false
		console.log(a===b);//true  比较数值和类型都要相同时返回true
		console.log(a!==b);//false
	</script>

8.2 对于非数值运算时转换成数值进行比较

	<script type="text/javascript">
		var a=100;
		var b='100';
		console.log(a<b);//false
		console.log(a>b);//false
		console.log(a<=b);//true
		console.log(a>=b);//true
		console.log(a==b);//true  比较数值大小相等是返回true
		console.log(a!=b);//false
		console.log(a===b);//false  比较数值和类型都要相同时返回true
		console.log(a!==b);//true
	</script>

8.3 两边都不是数值进行比较,不会将其转换成数字进行比较而会分别比较字符串中字符Unicode编码

Unicode码 是统一的标准码

	<script type="text/javascript">
		console.log("a"<"b");//a为97  b为98  所以输出为true
	</script>

8.4 null ,undefined ,NaN比较

	<script type="text/javascript">
		console.log(null==0);//false
		console.log(null==null);//true
		console.log(undefined==0);//false
		console.log(undefined==undefined);//true
		console.log(NaN==0);//false
		console.log(NaN==NaN);//false
	</script>
	<script type="text/javascript">
		var num=100;
		console.log(isNaN(num));//false
		console.log(null==undefined);//true
		console.log(null===undefined);//false
	</script>

8.5 isNaN()函数——是否不为数值型(就是是数值返回false,不是数字返回true)

	<script type="text/javascript">
		var num=100;
		console.log(isNaN(num));//false
	</script>

九、逻辑运算符

&&(与) , ||(或) , !(非)

&&(与):一假则假

	<script type="text/javascript">
		//9.1 对于Boolean类型直接转换成Boolean类型转换
		true && alert("111"); //弹出111  短路测试
		//9.2 如果A条件不成立返回条件A本身
		false && alert("111"); //无反应  短路测试
		//9.3 如果A成立条件B成不成立都返回B本身
		var res = 123 && "aaa";
		console.log(res); //aaa
		var res1 = null && 0;//null
		console.log(res1); //aaa
	</script>

 ||(或):一真则真

   

	<script type="text/javascript">
		var res=(3>7)||(14>10)
		console.log(res);//true
		//短路测试
		(7<3)||alert("222");//弹出222
		//9.4对于Boolean类型直接转换成Boolean类型转换
		//9.5 如果A条件成立返回条件A本身
		(17>3)||alert("222");//返回true,因为前面已经为真就不执行后面的了
		//9.6 如果A不成立条件B成不成立都返回B本身
		var res1=123||"123";
		console.log(res1);//返回123	
		var res2=null||0;
		console.log(res2);//返回0	
	</script>

!(非):真就是假,假就是真

	<script type="text/javascript">
		var res=!(3>1);
		console.log(res);//false
		//一个值进行两次去反不会有变化
		var res1=!!100;//可以转化为Boolean类型
		console.log(res1);//true		
	</script>

十、逗号运算符(不常用,并不是出现逗号的都是逗号表达式)

a=1,b=3,c=4;

	<script type="text/javascript">
		var res=(num1=1+2,num2=1*3,num3=1/4);
		console.log(res);//0.25  只是num3赋值给了res	
	</script>

十一、三目运算符(条件运算符)

条件语句?语句1:语句2

如果前面的语句为true则执行语句1,否则执行语句2

	<script type="text/javascript">
		7>9?alert(true):alert(false);
	</script>

练习1:用户从键盘中输入三个数,找到最大的值并且输出

	<script type="text/javascript">
		//问题:用户输入的三个值找到最大的,并且输出
		//定义三个变量,用来接收用户输入的值
		var num1,num2,num3;
		//处理用户的输入 alert , console.log , prompt()(利用这个接收用户输入的值)
		num1=Number(prompt("请输入第1个数"));
		num2=Number(prompt("请输入第2个数"));
		num3=Number(prompt("请输入第3个数"));
		//定义一个变量来
		var max;
		//利用三目运算符进行两两比较
		max=num1>num2?num1:num2;
		max=max>num3?max:num3;
		//输出结果
		console.log(max);
	</script>

优化后

	<script type="text/javascript">
		//问题:用户输入的三个值找到最大的,并且输出
		//定义四个变量,用来接收用户输入的值和保存他的最大值的变量
		var num1,num2,num3,max;
		//处理用户的输入 alert , console.log , prompt()(利用这个接收用户输入的值)
		num1=Number(prompt("请输入第1个数"));
		num2=+(prompt("请输入第2个数"));
		num3=+(prompt("请输入第3个数"));
		//利用三目运算符进行两两比较
		max=num1>num2?num1:num2;
		max=max>num3?max:num3;
		//输出结果
		console.log(max);
	</script>



 









  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

侧耳倾听...

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

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

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

打赏作者

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

抵扣说明:

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

余额充值