资讯专栏INFORMATION COLUMN

js数学小知识之巧妙取反

Amio / 2487人阅读

摘要:说起取反操作,一般情况是针对类型的操作,而在中处理逻辑或时,很多情况都会默认转换为值,例如等都会当做而等会当做来处理。具体代码如下输出的结果分别是和。怎么样,是不是又掌握了一项装逼技能

说起取反操作,一般情况是针对boolean类型的操作,而在javaScript中处理逻辑true或false时,很多情况都会默认转换为boolean值,例如"a"、1、{}等都会当做true,而""、0、NaN等会当做false来处理。一般取反的时候,是使用!运算符来操作,例如

var boo = false;
console.log(!boo,!!boo);

显而易见,输出的结果是true false,但在实际开发过程中,总会遇到一些奇奇怪怪的情况,并不是所有的标识符刚刚好就是boolean值,例如在html标签上自定义的属性值很可能拿到的时候是字符串,这样的话就会将string类型的"false"当做boolean类型的false来处理,自然是不符合逻辑的。
那么我们是否可以用其他的方式来实现逻辑判断呢?那当然是可以的,前文说到了1、0分别可以当做true、false,so~,第二个问题又来了,如何针对1、0进行相互取反的操作呢?
首先很多人想到的是

function test (boo){
    if(boo === 1){
        return 0;
    }else if(boo === 0){
        return 1;
    }
}

这样实现也未尝不可,但俗话说的好,撸码不装逼,等着遭雷劈

我们可以使用一些数学上的函数来非常简单的搞定1、0之间取反的操作,大家都知道,0的非0次幂都等于0,而任意实数的0次幂等于1,结合0和1就可以利用0的0次幂等于1,0的1次幂等于0来相互取反。具体代码如下

var boo1 = 0;
var boo2 = 1;
console.log(Math.pow(0,boo1));
console.log(Math.pow(0,boo2));

输出的结果分别是10
怎么样,是不是又掌握了一项装逼技能?


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88801.html

相关文章

  • 多屏互动——H5 中级进阶

    摘要:手机屏幕朝上,水平静止放置,轴重力加速度为,为。当手机水平放置,拨动手机,使其慢慢旋转,重力加速度的数据并没有变化。四元数的基本数学方程为其中表示旋转角度,表示旋转轴。四元数表示一个完整的旋转。 前言 随着智能硬件的普及,手机,平板,PC甚至路边的电子广告牌,现代浏览器已经无处不在。在浏览器里编织出我们自己的一片天地已经轻车熟路,但是这还不够,H5赋予了浏览器太多的新特性,等待我们去使...

    wdzgege 评论0 收藏0
  • 请回答c语言-操作符【入门】

    摘要:操作符的两个操作数必须为整数。函数调用用作为函数调用操作符。访问一个结构的成员结构体成员名结构体指针成员名还是熟悉的栗子在之前的博客请回答语言初识语言下入门的结构体出现过的栗子名字图鉴编号身高重量属性类型 ...

    frolc 评论0 收藏0
  • JS 中经常使用的技巧,助你更简短的实现一些功能

    摘要:第二个问题非基础类型则不好处理,其实像这种比较的方法,往往不是用于处理普遍情况的,往往是在特殊场景发挥奇效的。没有最好的方案,只有最合适的方案。这样才能使得正数和负数的表示统一起来,具体可以参阅补码的历史,这里不过多展开了。 原文: https://github.com/HCThink/h-... github 首页(star+watch,一手动态直达): https://gith...

    ChristmasBoy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<