JavaScript第二天
1:余下的数不可能大于被除的数
例如:
78%3 //结果绝对不可能大于3也不能等于3,如果等于3就可以再上一位
2:运算符的运算顺序会先算乘性的(*/%)再算加性的(+-)
运算符分类
运算符大致可分为
- 数学运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 按位运算符
- 条件运算符
隐式转换
在js中就算不用parseInt字符串也可以和数字进行计算,这是因为中间字符串会自动进行一个隐式转换,把字符串转成数字进行计算,但是并没有parseint的效果
例如:
alert(3 * "8"); //他一样会输出24,因为隐式转换把8这个字符串转成了数字
alert(3 * "8个"); //但是这样就可以输出了,因为隐式转换并没有parseint的功能,没有办法智能取整
在运算中不纯的字符串和undefined无法进行隐式转换,会输出NaN
无论哪种运算+-*/%只要undefined参与了结果都是NaN
关系运算符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
=== 全等于
!= 不等于
!== 不全等于
//==和===的区别就是,==会默认帮你进行隐式转换,而===会连类型也进行比较并且不做隐式转换
alert(8=="8")//true
alert(8==="8")//false
-
表示相等会帮你进行隐式转换,而=表示全等不会转换
!=是的反面,等于true的,!=就是等于false
!是=的反面,=等于ture的时候!就等于false
-
关系运算符不可以连续使用绝对会出问题
例如
alert(3>2>1);//如果这样连续使用关系运算符,程序就会出问题 //如果需要连续使用关系运算符,就要借助逻辑运算符
逻辑运算符
&& 与 并且
|| 或 或者
! 非 反之
//非运算符是,有真是假,有假是真
alert(!true);//结果就是flase
alert(!flase);//结果就是true
逻辑运算符的运算顺序是,非,与,或
布尔值
在隐式转换中true会被转换为1,false会被转换成0
短路算法
-
逻辑与
如果计算一个且运算的时候,比如a && b,a如果就是一个false,那么就不会管b是什么,直接输出false就行了,等于说直接输出a。
如果计算一个且运算的时候,比如 a && b ,a如果就是一个true,那么也不用管b是什么,直接把b当做结果输出就行了。
例如:
alert (true&&8);//8 alert(false&&8);//false1false && 8 //false 因为计算机发现,且运算a已经是false了,直接输出false 2null && 8 //null 因为计算机发现,且运算a已经是false性的了,直接扔出来null 3true && 13 //13 因为计算机发现,且运算a是true,所以总结果就是看b,直接扔出b 412 && 13 //13 因为计算机发现,12当做true,所以总结果看b,直接扔出b 513 && 12 //12 因为计算机发现,13当做true,所以总结果看b,直接扔出b 6undefined && 哈哈 //undefined 不报错,因为a已经是负性的了,所以直接扔出a,哈哈不管 7哈哈 && undefined //报错 true && NaN //NaN 扔后面也就是说,本质上计算机进行a&&b运算的时候,不是在进行逻辑分析,计算机就想着要么扔a,要么扔b。如果a是负性的,那么直接扔出a;如果a是正性的,直接扔出b。 —— 短路语法。 要么a被短路,要么b被短路。 负性的:false,nall,0,NaN,空字符串(""),undefined
除了以上的其他的全是正性的
-
逻辑或
|| 逻辑或的短路也是类似的,a||b
计算机发现a是真,那么扔a;如果a是假,那么扔b
10 || 18 //18 前面假,扔后面 218 || 0 //18 前面真,扔前面 3undefined || NaN //NaN 前面假,扔后面 NaN || undefined //undefined 前面假,扔后面总结一下短路语法:
a&&b, 计算机要么执行a要么执行b。a真执行b,a假执行a;
a||b, 计算机要么执行a要么执行b。a真执行a,a假执行b。
赋值运算符
= 赋值
+= 简便写法 例如:a+=1 等于 a=a+1
-= 简便写法 例如:a-=1 等于 a=a-1
= 简便写法 例如:a"**"=1等于a=a""1
/= 简便写法 例如:a/=1等于a=a/1
%= 简便写法 例如:a%=1等于a=a%1
++ 简便写法 例如:a++等于a=a+1
a++先用a的原值再+1,++a先+1再用a的新值
-- 简便写法 例如:a--等于a=a-1
** 赋值运算的参与者是变量**
运算符的运算顺序
++ == !贴身的 >>> 数学 >>>比较 >>> 逻辑 >>>赋值

浙公网安备 33010602011771号