JavaScript操作符与处理特殊值时规则

一元操作符

只能操作一个值:
++||- -递增递减等
运算符在前表示先加后运算,在后表示先运算后加:
a=1 (a++)+null=1 a+null=2
该运算符可运用与字符串、布尔值、浮点数、对象
在布尔值中是把true或false转换为数值型进行操作。
字符串不包含数字,会转换成NaN数值型操作。
注意=+与+=不同,=+无效。

位操作符

对于有符号的整数来说,存储在32位中的前31位是数值,第32位存储的0是整数1是负数,这就是符号位
负数的粗存方式是反码
运算方式如下:

  • 先得到正数的二进制数
    例如:-2的二进制是
    100000000000000000000000000000010
    得到正2的二进制数就是:00000000000000000000000000000010
  • 然后求其二进制反码,就是0与1互换:
    11111111111111111111111111111101
  • 最后二进制反码加1:
    11111111111111111111111111111110即-2
    注意上述是有符号的整数

按位非(NOT)

由波浪线(~)表示,返回数值的反码。
例:num=2; num1=~num ;则 mun1={11111111111111111111111111111101}

按位与(AND)

由与符号(&)表示,返回值为两个数对应二进制位数值相同的值,怎么理解呢:
2的二进制是00000000000000000000000000000010;
25是00000000000000000000000000011001;
那么 2&25结果就是 1

按位或(OR)

由竖线符号(|)表示,与或运算相似,会把有1的位数返回,只要两个数中有1的位数就返回!!

按位异或(XOR)

由插入符号(^)表示,返回值为二进制数位只有一个1的值,与按位或很相似,但是不会返回两个数字相同二进制位数都是1的值!

左移

由两个小于号(<<)表示,会把1的位数向左移:
2的二进制数为 10
那么2<<5二进制就等于 1000000
左移不会影响符号位(32位)。

有符号的右移

由两个大于号(>>)表示,但不同的是,在右移的过程中,空位的出现是在符号位的右侧,所以ECMAScript会用符号位填写空缺部分

无符号的右移

由三个大于号表示(>>>)
这里有一个问题:当负数无符号二

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值