Javascript表达式中连续的 和 || 之赋值区别
代码如下: 代码如下: function write(msg){ for(var i = 0; i < arguments>’); } } //关于 ‘&&’ test1 = 1 && 2 && 3 && 4; test2 = ‘0’ && 2 && 3 && 4; test3 = 1 && 2 && 0 && 4; test4 = 2 && ‘i’ && ‘love’ && 3 && ‘you’; test5 = ‘i’ && ‘hate’ && 1 && 0 && ‘you’; tes 在JavaScript中,`&&`和`||`是逻辑运算符,它们在表达式中起到连接作用,但同时也有特殊的赋值特性。理解这两个运算符的行为是编写高效和准确的JavaScript代码的关键。 我们来看看`&&`运算符。在连续的`&&`表达式中,如`a && b && c`,JavaScript会从左到右依次计算每个表达式。如果第一个表达式(这里是`a`)转换为布尔值为`false`(包括`0`、`false`、`null`、`undefined`、空字符串`""`),那么`a && b && c`的结果就是`a`的值,后面的表达式不再计算。反之,如果`a`转换为布尔值为`true`,那么JavaScript会继续计算第二个表达式`b`,这个过程持续到遇到一个`false`值或所有表达式都计算完毕。如果所有表达式都是`true`,那么`&&`表达式的结果就是最后一个`true`表达式(即`c`)的值。 例如,`test1 = 1 && 2 && 3 && 4;`的结果是`4`,因为所有表达式都是`true`,所以最后一个表达式`4`被返回。而`test3 = 1 && 2 && 0 && 4;`的结果是`0`,因为`0`布尔值为`false`,所以`0`就是整个表达式的结果。 接下来是`||`运算符。与`&&`不同,`||`会从左到右依次计算每个表达式,直到找到第一个非空(即非`false`、`0`、`null`、`undefined`、空字符串`""`)的值,然后立即停止,这个值就是整个表达式的结果。如果所有表达式都为空,那么`||`会返回最后一个表达式。比如,`_test4 = 2 || ‘i’ || ‘love’ || 0 || ‘you’;`的结果是`2`,因为`2`是第一个非空值,所以表达式就不再继续计算后面的值。 需要注意的是,`&&`和`||`在某些情况下可以用作短路逻辑,也就是仅根据前几个表达式的值就能确定整个表达式的结果,而无需计算所有表达式。这种特性在条件判断和默认值赋值时特别有用。 总结一下,`&&`运算符在连续使用时,会返回遇到的第一个`false`值,或者如果所有值都是`true`,则返回最后一个`true`值。而`||`运算符会返回遇到的第一个非空值,或者如果所有值都是空,则返回最后一个值。理解这两种运算符的这些行为可以帮助我们编写更简洁、更高效的JavaScript代码。
- 粉丝: 12
- 资源: 987
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建可复用 Vue 组件的实战指南与深度解析
- C#JQuery+EasyUI后台管理系统源码数据库 SQL2008源码类型 WebForm
- 营销增长【FY25 - 内容智能】.pdf
- Delphi Modbus-TCP 协议包
- C++ 中 std::tuple 与 std::pair 的全面解析与应用实践
- Vue 项目中单文件组件的深度应用与实践指南
- 大二下学期写的课设,技术栈是vue+springboot,前后端分离开发,健身房管理系统【含sql文件和设计文档】.zip
- 2112121212121212121221
- C#ASP.NET摄影展示网站源码数据库 SQL2008源码类型 WebForm
- 图片素材信息!!!图片素材信息
评论0