一元运算符?进制?位非 ?位与运算 ?位或运算?异或运算?左右移位 ?==、===?三元运算符?

一元运算符?

i++和++i 独立运算时,运算的结果时完全相同的。但是如果将i++或者++i赋值/打印/获取时,那么运算的先后顺序和赋值先后顺序将产生改变。

如果i++,变量在前,先赋值,再运算

如果++i,变量在后,先运算,再赋值

 

进制?

2进制、8进制、16进制。计算机只能认识二进制,布尔值true和false也算。

0001 1100 1010  1ca  二进制与十六进制互相转换是通过8421快速进行的

 

位非 ~

位非~ 是指+1取负。 如~2,转换过来就是-3。顺便提一下布尔值为false是当数值为0时,其他正数或负数都是true。

  

位与运算 &

5&6  结果为4  即5转换为二进制101,6转换为二进制110,然后101与110进行相对应的运算,1为true,0为false,结果就是100,100再转换为十六进制就是4.

 

位或运算 |

5 | 6结果是7  即5转换为二进制101,6转换为二进制110,然后101与110进行相对应的运算,1为true,0为false,或 | 是只要一个为true就是true,那么结果就是111,111再转换为十六进制就是7.

 

异或运算 ^

5^6结果是 3 即5转换为二进制101,6转换为二进制110,然后101与110进行相对应的运算,相同为0,不相同为1,那么结果就是011,011再转换为十六进制就是3.   运用场景一:

密码^加密串====加密后的密码 x^y=z  x密码为1235,y加密串为36,z为加密 后的密码

加密后的密码^加密串===密码  z^y=x  如此便得到原始密码

 

左右移位 <<    >>

8<<2结果是32。   8为1000  左移两位即加两个0  就是1000  00整合一下就是10  0000二进制,二进制转换位十进制就是32

8>>2结果是2。  8为1000  右移两位即去掉两个0  就是10,该二进制转换位十进制就是2.      1<<n  //求2的n次幂

 

==和===  结果返回true或false

== 自带隐式转化,即会把左右两边转换为同一类型,再进行比较

=== 表示判断两者之间值和类型是否相同

注意: null==undefined    0==false==””     NaN与任何内容都不同,NaN也不等于NaN       isNaN( )判断某个数值是否是非数值

牢记:   

if( x==false){   }   //为true的情况有三种,即x为空字符串””  ,  0  ,false

if(x===false){  }  //为true的情况有一种,即x为false

if( !x ){  }      //为true的情况有六种,即x为0 , false , undefined , null , “” , NaN

!x先判断x的布尔值,再判断非!的布尔值

三元运算符?

条件?值1:值2,如果条件为true,返回值1,如果条件返回false,返回值2

sum>500 ? 500 : 400;

s = s || 50;  //判断s是否存在,是的话返回s,不存在的话返回50,若s=””,空字符串是false,即s=flase为假,则此处返回50.相当于s=s? s : 50;  常用来判断s是否存在,存在则返回存在的值,不存在则返回后面的值。这方法也叫熔断处理,即一个条件满足,则根本不会去判断第二个条件

obj=obj || {};  //相当于obj = obj ? obj : { }; 即判断obj是否是真,如果不是真,则返回一个空对象 { }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值