有人可以向我解释一下&&在调用函数时使用?

时间:2012-01-03 06:15:52

标签: javascript operators

请解释在调用函数和使用&&运算符方面做了些什么。

callback(data && data.length > 1 && JSON.parse(data));

另外,哪个值实际传递给函数?

5 个答案:

答案 0 :(得分:2)

我猜测回调需要一个布尔值或一个int值。

&安培;&安培;是一个逻辑和运算符,所以它确定数据是否为非并且data.length大于一个AND JSON.parse(data)返回非零,然后表达式将导致1或true传递给回调。如果不满足任何这些参数,则它将传递0或false。

答案 1 :(得分:1)

这是一种说明数据是否为真(非空)并且其长度为>的方法。 1然后调用JSON.parse(数据)。 如果第一个表达式为真,则仅评估第二个表达式,依此类推。 它相当于

if(data)

if(data.length> 1)

回调(JSON.parse(数据));

答案 2 :(得分:0)

按照我的说法,只传递布尔变量(true / false)

  1. data:检查数据是否存在或为空
  2. data.length> 1长度是否大于1。数据中至少应包含两个元素。
  3. JSON.parse(data)的返回值可以是true或false。
  4. 当您了解回调接受的内容时,将会非常清楚。

答案 3 :(得分:0)

&安培;&安培;可用于一次评估多个语句。 &安培;&安培;可以被认为是“和”。

所以,真实&&假;评估为假。

在JavaScript中,&&如果第一个操作数是假的,则返回第一个操作数。如果第一个操作数是真值,它将返回第二个操作数。

答案 4 :(得分:-1)

&&是短路逻辑“AND”运算符。短路意味着仅当前一个解析为true时才会评估表达式的下一个组成部分。因此,除非data.length > 1为真,否则不会评估data,除非JSON.parse(data)解析为真,否则不会评估data.length

最后,如果所有三个组件都为真,则将布尔值传递给方法callback() - true

  • data
  • data.length > 1
  • JSON.parse(data))

...而{和} false