繁体   English   中英

有人可以向我解释在调用函数时使用了什么&&吗?

[英]Can somebody explain to me what && does when used with calling a function?

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

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

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

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

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

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

如果(数据)

if(data.length> 1)

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

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

  1. data:检查数据是否存在或为null
  2. data.length> 1长度是否大于1。 数据中至少应包含两个元素。
  3. 返回值JSON.parse(data)它可以是true或false。

当您了解回调接受的内容时,将会非常清楚。

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

所以,真的&& false; 评估为假。

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

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

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

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

......否则就是false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM