码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-06-21 17:06:11      阅读:434      评论:0      收藏:0      [点我收藏+]

标签:i++   一个   eof   lse   console   class   bsp   als   OLE   

先说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如何实现

标签:i++   一个   eof   lse   console   class   bsp   als   OLE   

原文地址:https://www.cnblogs.com/linx/p/11065544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!