栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript中的&和&&有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript中的&和&&有什么区别?

&
是按位AND

该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。

注意: 在Javascript中, 不建议 使用此运算符
因为没有整数数据类型,只有浮点数。因此,浮点数在每次操作之前都会转换为整数,从而使其变慢。而且,它在典型的Web应用程序中没有真正的用途,并且会产生无法读取的代码。

一般规则:避免。 不要使用它。它很少放在可维护和可读的JS代码中。

&&
是逻辑与

它需要两个参数并返回:

  • 第一项评估为假
  • 否则为最后一项(如果全部为y)

这里有些例子:

0 && false          0 (both are false-y, but 0 is the first)true && false       false (second one is false-y)true && true        true (both are true-y)true && 20          20 (both are true-y)

如果您只在布尔值上使用过它,那么这正是数学逻辑中的AND运算符。

&&
操作员链

如上所述定义此运算符的原因是运算符链接。您可以链接此运算符,并且仍然保留上述规则。

true && 20 && 0 && 100          0 (it is the first false-y)10 && 20 && true && 100         100 (last one, since all are true-y)
&&
短路

从定义中可以看出,一旦您发现一个术语为假y,就不必关心以下术语。Javascript甚至更进一步,术语甚至都没有评估。这称为短路。

true && false && alert("I am quiet!")

该语句不发出任何警告,

false
并返回。因此,可以将
&&
运算符用作if语句的更短替代。这些是等效的:

if (user.isLoggedIn()) alert("Hello!")user.isLoggedIn() && alert("Hello!")

几乎所有的JS压缩程序都使用此技巧来节省2个字节。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号