Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中同时比较多个变量_Javascript_Jquery - Fatal编程技术网

在javascript中同时比较多个变量

在javascript中同时比较多个变量,javascript,jquery,Javascript,Jquery,这些是我的变量 value1= 15.8 value2 = 15.5 value3 = 15.3 我的情况是,value1应该大于value2,value2应该大于value3 是的,我可以通过console.log((value1>value2)和&(value2>value3))实现这一点。 我试过,console.log((value1>value2>value3)); 对我来说它看起来很好,但它返回false。 我想知道我是否可以比较三个或更多类似的变量,如果可以,我在这里遗漏了什么

这些是我的变量

value1= 15.8
value2 = 15.5
value3 = 15.3
我的情况是,
value1
应该大于
value2
value2
应该大于
value3

是的,我可以通过
console.log((value1>value2)和&(value2>value3))实现这一点。

我试过,
console.log((value1>value2>value3))
; 对我来说它看起来很好,但它返回
false
。 我想知道我是否可以比较三个或更多类似的变量,如果可以,我在这里遗漏了什么

多谢各位

我是否可以比较三个或更多这样的变量

答案很简单,不是

当你这样做的时候

value1 > value2 > value3,
它将从左到右解析,看起来像
(value1>value2)>value3

  • value1>value2:这将产生布尔值,比如
    true
  • true>value3:这将始终产生false,除非value3小于1,正如
  • 当比较值时,JS将尝试将它们转换为相同的类型。因此,布尔值将转换为数值

    • 正确->1
    • 错误->0
    我是否可以比较三个或更多这样的变量

    答案很简单,不是

    当你这样做的时候

    value1 > value2 > value3,
    
    它将从左到右解析,看起来像
    (value1>value2)>value3

  • value1>value2:这将产生布尔值,比如
    true
  • true>value3:这将始终产生false,除非value3小于1,正如
  • 当比较值时,JS将尝试将它们转换为相同的类型。因此,布尔值将转换为数值

    • 正确->1
    • 错误->0
    我试过了,console.log((value1>value2>value3));它对我来说似乎很好,但返回false。

    请考虑如何评估 比较第一个值1>值2,这是正确的

    然后比较true>value3,该值为false

    我想知道是否可以比较三个或更多这样的变量

    在这种情况下,它将从左到右求值,结果从左条件到右变量或表达式值

    我试过了,console.log((value1>value2>value3));它对我来说似乎很好,但返回false。

    请考虑如何评估 比较第一个值1>值2,这是正确的

    然后比较true>value3,该值为false

    我想知道是否可以比较三个或更多这样的变量


    在这种情况下,它将从左到右求值,结果从左条件到右变量或表达式值

    No,这是不可能的。比较运算符是二进制的-它们一次只对两个值进行操作。您只能进行一系列二进制比较。这是不可能的。只有
    left和right-hand
    到js方程
    value>value2>value3
    将解析为
    true>value3
    ,这将迫使
    true
    被计算为一个数字,给您
    1>value3
    这是
    false
    否,这是不可能的。比较运算符是二进制的-它们一次只对两个值进行操作。您只能进行一系列二进制比较。这是不可能的。只有
    left和right-hand
    到js方程
    value>value2>value3
    将解析为
    true>value3
    ,这将迫使
    true
    作为一个数字进行计算,而
    1>value3
    不需要
    false
    value3是零。刚好小于
    1
    true>0.9
    为真,
    true>-100
    也为真。这是因为
    newnumber(true)
    为您提供
    1
    值3不需要为零。刚好小于
    1
    true>0.9
    为真,
    true>-100
    也为真。这是因为
    newnumber(true)
    为您提供
    1