js中a + 1 < a等于true,(a ==1 && a== 2 && a==3) 等于 true如何实现

Posted linx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中a + 1 < a等于true,(a ==1 && a== 2 && a==3) 等于 true如何实现相关的知识,希望对你有一定的参考价值。

先说a + 1 < a

 1 const a = 
 2     i: 1,
 3     valueOf: () => 
 4         if (a.i === 1) 
 5             return a.i++;
 6         
 7         return a.i+2;
 8     
 9 
10 console.log(a + 1 < a); // true

原理:valueOf第一次返回一个值,取过一次之后返回另一个值,这里用个变量判断也行,如下:

 1 let flag = true;
 2 const a = 
 3     i: 1,
 4     valueOf: () => 
 5         if (flag) 
 6             flag = false;
 7             return a.i;
 8         
 9         return a.i+2;
10     
11 
12 console.log(a + 1 < a); // true

如果 a 加的数字小于 1,可以这么写

1 const a = 
2     i: 1,
3     valueOf: () => 
4         return a.i++;
5     
6 
7 console.log(a + 0.9 < a); // true

以上是a + 1 < a的解法


再说(a ==1 && a== 2 && a==3)等于true的实现,其实跟上面逻辑差不多,如下:

const a = 
    i: 1,
    valueOf: () => 
        return a.i++;
    

console.log(a ==1 && a == 2 && a == 3); // true

 




以上是关于js中a + 1 < a等于true,(a ==1 && a== 2 && a==3) 等于 true如何实现的主要内容,如果未能解决你的问题,请参考以下文章

php 使用操作符

php 等于不等于 一个感叹号两个等于号

python小于等于怎么表示

php 数组操作符

Go的运算符

Python之比较运算符