js中取非运算符与取反运算符

取非

关于取非运算符: 

js中0为fasle,所以!0 就为true;

若判断字符串类型,!str为先判断类型 再对boolean做比较

按位取反

按位取反运算符会把原来为0的值,变为1,原来为1的值变为0。

原因是按位取反将值转换为二进制再进行取反运算,

例如: 十进制1转换为二进制是0000 0001,十进制2转换为二进制是0000 0010

将0000 0001按位取反:1111 1110

将0000 0010按位取反:1111 1101

取反后第一位是1,为负数。负数转换为原码,第一位符号位不变,其余取反+1,

得到1000 0010,1000 0011

再将源码转换成二进制,就得出为-2,-3。

看起来有些麻烦 ~~~~~~~~~~~~~~

但是取反运算符在比较 值为-1的情况很好用 简化代码,比如:

逻辑取反

可以用于判断值为 -1 就push的场景。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ~按位取反运算符 正常一个数字,例如1和2,或者-1和-2。 如果我们对它们进行按位取反的话,结果会是这样: ~1...
    LinDaiDai_霖呆呆阅读 3,536评论 3 3
  • 起因 之前对js的一些涉及到二进制的运算符一直似懂非懂,看到了就一脸懵逼,还得去控制台算一下。然后最近看算法的时候...
    无缺啊阅读 853评论 0 0
  • 很多高级语言的开发者都容易忽略位运算符的使用技巧,因为他们总感觉位运算符是底层开发的专利;其实,这是错误的,通过巧...
    科研者阅读 3,835评论 1 9
  • @[toc]MySQL 提供了很多功能强大、使用方便的运算符和函数。通过使用这些运算符完成各种各样的运算操作。函数...
    夜雨流云阅读 723评论 0 0
  • 运算符分类 算数运算符比较运算符逻辑运算符赋值运算符成员运算符身份运算符位运算符 1. 算数运算符 加减乘:+ -...
    雨下一整晚y阅读 529评论 0 0