短路表达式
什么是短路表达式
作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。
而在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true. 利用上述特性,我们可以在项目开发中用短路表达式 精简某些代码,不过随之带来的弊端就是 代码的可读性不高。
||
||先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数。
场景
1、var attr = attr || "";
这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,在给函数的参数定义一个默认值的时比较有用。
2、var foo = foo||bar;
等同与//如果foo存在,值不变,否则把bar的值赋给foo
if(!foo){foo = bar;
}
}
4、&&,它先计算第一个表达式,若为假,就不会去处理第二个表达;
否则继续处理后继表达式。从左到右选取表达式的第一个为非true的表达式的值,
如果一直未找到则返回最后一个表达式的值。
场景
3、
2 && 's1' && '123' && 'sss' 表达式的值等于 'sss'
2 && 's1' && '' && 'sss' 表达式的值等于 ''
2 && 's1' && NaN && 'sss'表达式的值等于 NaN
例子
1、
var a=3,b;
if(a == 3){b=6;
}else if(a == 2){b=4;
}else{b=1
}
等同于b = a==3 && 6 ||a==2 && 4 ||1
*****不适用
var a=3;
if(a == 3){alert("yes")
}else{alert("no")
}
a==3 && alert("yes")||alert("no");
测试 a==3时候 先输出 alert('yes')
再输出 alert('no')
因为alert('www)执行之后没有返回值,结果为 undefined 所以会继续计算右边表达式
相关文章:
短路表达式
什么是短路表达式 作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 而在j…...
风力发电场集中监控系统解决方案
安科瑞 崔丽洁 作为清洁能源之一,风力发电场近几年装机容量快速增长。8月17日,国家能源局发布1-7月份全国电力工业统计数据。截至7月底,全国累计发电装机容量约27.4亿千瓦,同比增长11.5%。其中,太阳能发电装机容量约4.…...
SpringDataJpa(二)
三、Spring Data JPA概述 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring D…...
软件测评中心▏软件功能测试和非功能测试的区别和联系简析
在软件开发的过程中,功能测试和非功能测试是两个重要的环节。功能测试是指对软件的各项功能进行验证和确认,关注软件是否按照需求规格说明书进行了实现,是否满足了用户的功能需求。而非功能测试是指对软件的性能、可靠性、安全性等方面进行测…...
打卡系统有什么用?如何通过日常管理系统提高企业员工的效率?
在当今快速发展的时代,职工的行动管理已成为机构单位工作中至关重要的一环。如何更好地了解和掌握职工的日程安排和行动轨迹,成为了一个值得探讨的问题。为了解决这一难题,“的修”打卡系统应运而生,它为我们提供了一个全面而高效…...
png怎么转jpg?这款图片转格式工具一学就会用
虽然png图片格式是一种无损压缩格式,但是png图片的内存大小也是比较大的,而且兼容性上也没有jpg图片好,许多平台推荐的也都是jpg格式,所以当我们需要把png转jpg格式的时候,就需要用到图片格式转换器,今天推…...
万界星空科技MES系统软件体系架构及应用
MES系统是数字化车间的核心。MES通过数字化生产过程控制,借助自动化和智能化技术手段,实现车间制造控制智能化、生产过程透明化、制造装备数控化和生产信息集成化。生产管理MES系统主要包括车间管理系统、质量管理系统、资源管理系统及数据采集和分析系统…...
uniapp h5实现Excel、Word、PDF文件在线预览,而不是跳转下载,也不需要下载
实现方案 word,微软 Office Web Viewer const url https://view.officeapps.live.com/op/view.aspx?src${encodeURIComponent(https://501351981.github.io/vue-office/examples/dist/static/test-files/test.docx)} window.open(url) //新建窗口打开链接预览 /…...
台式电脑一键重装Win10系统详细教程
很多用户都在使用台式Win10电脑办公,如果电脑出现系统问题无法解决了,这时候就可以考虑给电脑重装系统哦,下面小编给大家详细介绍关于台式电脑一键重装Win10系统的步骤方法,安装后电脑就能恢复正常,也不会影响到用户的…...
图像相机-相机属性SDK汇总设置
文章目录 彩色相机设置彩色分辨率设置(TY_ENUM_IMAGE_MODE)彩色模拟增益(TY_INT_ANALOG_GAIN)彩色曝光(TY_INT_EXPOSURE_TIME)彩色增益彩色畸变 深度相机设置深度分辨率(TY_ENUM_IMAGE_MODE&…...
使用ffmpeg调用电脑自带的摄像头和扬声器录制音视频
1、打开cmd,执行chcp 65001,修改cmd的编码格式为utf8,避免乱码 2、执行指令ffmpeg -list_devices true -f dshow -i dummy,查看当前window的音频和视频名称 3、打开windows系统的"打开声音设置"–“麦克风隐私设置”–"允许应用访问你…...
工业物联网模块应用之砂芯库桁架机器人远程无线控制
一、应用背景 在铸管车间无线技改项目中,客户需要构建智能化砂芯库,要求各库存的规格、数量、位置坐标等数据实时可显。此外,还需具备自动入库及出库功能,用于将出炉后的成摞砂芯及时码放至砂芯库的预设位置,当离心机…...
Ubuntu安装.Net SDK
参考微软文档:在 Linux 上安装 .NET选择自己对应系统版本的链接辅助即可。 我这里使用的是 Ubuntu 20.04,因为在这个版本.Net 在Ubuntu包源存储库中不可用,需要手动添加Microsoft包存储库。 使用 APT 进行安装可通过几个命令来完成。 安装 …...
相交链表~
题目描述 给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。图示两个链表在节点 c1 开始相交: 题目数据保证整个链式结构中不存在环。注意,函数返回结果后&…...
跨境电商API接口如何通过API数据接口进行选品
一、了解API及其重要性 API,即应用程序接口,是一种提供给开发者使用的工具,使他们能够通过编程方式访问和操作另一个应用程序的功能。在跨境电商领域,API通常被用于连接电商平台、支付系统、物流服务等,以实现数据的共…...
ArrayList集合方法(自写)
以下方法在使用时需要new一个新对象调用,输出时需要一个输出方法,否则输出的是地址 1.最后位置插入 //最后位置插入 public void add(int element){if (size>arr.length){capacity*factor;int[] tempnew int[capacity];for (int i 0; i <arr.le…...
sql注入学习笔记
sql注入原理 掌握sql注入漏洞的原理掌握sql注入漏洞的分类 万能用户名 777 or 11 #原句 select userid from cms_users where username ".$username." and password".md5 ( $password ) ."输入过后为 select userid from cms_users where username …...
企业涉密文件怎么加密?企业重要文件加密方法
对于一个企业来说,涉密文件的重要性不言而喻,我们需要使用专业的方法来保护企业重要文件。那么,企业涉密文件该怎么加密呢?下面我们来一起了解一下。 本地文件加密 针对在电脑本地保存的文件,我们可以使用超级加密300…...
经典猜数游戏(python类封装)
五次机会猜测100以内随机正整数,我用初通的python类封装了代码并清屏上一次猜测提示,难有所增加咯。 (笔记模板由python脚本于2023年11月09日 12:31:30创建,本篇笔记适合掌握python循环和条件分支语句用法,初通python类的coder翻阅…...
环形链表~
题目描述 给你一个链表的头节点 head ,判断链表中是否有环。如果链表中存在环,则返回true。否则,返回false 。 解题思路 采用快慢指针的思想,创建fast和slow一快一慢指针,slow一次走一步,fast一次走两步&…...
别再只测波形了!手把手教你用示波器看懂MIPI DSI的Escape Mode(附实战抓包分析)
从波形到协议:示波器实战解析MIPI DSI Escape Mode的触发与诊断 当你面对示波器上跳动的MIPI DSI信号波形时,是否曾对那些神秘的LP(低功耗)状态序列感到困惑?LP-11、LP-10、LP-00这些看似简单的电平组合,实…...
3步掌握AI到PSD矢量导出的终极指南:Ai2Psd让设计协作不再有壁垒
3步掌握AI到PSD矢量导出的终极指南:Ai2Psd让设计协作不再有壁垒 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 在当今跨软件设计…...
如何快速搭建个人音乐云:Navidrome音乐服务器完整部署指南
如何快速搭建个人音乐云:Navidrome音乐服务器完整部署指南 【免费下载链接】navidrome 🎧 Your Personal Streaming Service 项目地址: https://gitcode.com/gh_mirrors/na/navidrome 厌倦了付费音乐订阅服务的限制,却又渴望随时随地…...
ubuntu CT文件查看器---
https://download.slicer.org/ 解压文件后直接执行就可以了 ./可执行文件...
用Python实战卡方检验:从孟德尔豌豆到数据分布拟合(附完整代码)
Python实战卡方检验:从数据分布验证到业务决策 卡方检验是数据分析师工具箱中不可或缺的统计工具,它能帮助我们判断观察数据与理论分布是否存在显著差异。本文将带你从经典案例出发,通过Python代码实现完整的卡方检验流程,并探讨在…...
全栈AI智能体项目生成器:基于FastAPI与Next.js的快速开发实践
1. 项目概述:一个面向生产环境的全栈AI智能体项目生成器 如果你正在构建一个集成了AI智能体、RAG(检索增强生成)和实时聊天功能的现代Web应用,那么从零开始搭建整个技术栈绝对是一项耗时且充满陷阱的工程。你需要考虑后端API框架、…...
告别手动填Token!SpringDoc + Spring Security OAuth2 一键登录Swagger UI实战
SpringDoc与Spring Security OAuth2的无缝集成实战 每次调试API时,你是否厌倦了在Swagger UI和OAuth2授权页面之间来回切换?那种复制粘贴Token的繁琐操作,不仅浪费时间还容易出错。作为开发者,我们值得更好的工具链体验。 1. 传统…...
终极jq区块链应用指南:如何高效处理区块链JSON数据
终极jq区块链应用指南:如何高效处理区块链JSON数据 【免费下载链接】jq Command-line JSON processor 项目地址: https://gitcode.com/GitHub_Trending/jq/jq 区块链技术产生的海量JSON数据常常让开发者望而却步,而jq作为一款轻量级的命令行JSON处…...
Cursor AI助手最佳实践:通过规则配置提升代码质量与团队协作
1. 项目概述:为什么我们需要一套“最佳”的Cursor规则?如果你是一名开发者,并且最近开始使用Cursor——这款集成了AI编程助手的现代编辑器,那么你很可能已经体会过那种“又爱又恨”的感觉。爱的是,它确实能极大地提升编…...
从静态3D生成到交互式物理仿真的技术突破
1. 项目概述:从静态3D生成到交互式物理仿真的技术跃迁在3D内容创作领域,我们正经历一场从静态重建到动态交互的范式转变。传统3D生成技术如神经辐射场(NeRF)和3D高斯泼溅(3DGS)已经能够生成令人惊叹的静态模…...
