深入JavaScript的逻辑运算符

简介: 深入JavaScript的逻辑运算符

与、或、非的逻辑操作

基本的逻辑运算  

逻辑运算符在程序设计中扮演着至关重要的角色,它们使得可以根据多个条件来控制程序的执行路径。

  • 逻辑与 (**&&****)**:只有当所有操作数都为真时,结果才为真。
  • 逻辑或 (**||****)**:只要至少有一个操作数为真,结果就为真。
  • 逻辑非 (**!****)**:用来反转操作数的布尔值。
let a = true, b = false;
console.log(a && b); // 输出:false
console.log(a || b); // 输出:true
console.log(!b); // 输出:true


这些运算符通常用于组合多个条件判断,从而形成复杂的逻辑链。



短路求值的使用

优化代码执行  

在JavaScript中,逻辑与和逻辑或运算符具有“短路”行为,这意味着表达式的求值可以在不检查所有条件的情况下提前完成。

  • 逻辑与 (**&&****)**:如果第一个操作数为false,表达式立即返回false,第二个操作数不会被求值。
  • 逻辑或 (**||****)**:如果第一个操作数为true,表达式立即返回true,第二个操作数不会被求值。


let result = false && (x = 1); // x 不会被赋值
let isAvailable = true || someExpensiveComputation(); // 不会调用 someExpensiveComputation()

这种短路行为可以用于写出更高效的代码,特别是当第二个操作数涉及到复杂或资源密集的计算时。



条件(三元)运算符

简化条件表达式  

条件运算符,也称为三元运算符,是JavaScript中唯一的三元运算符。它由三部分组成:一个条件表达式、一个结果表达式(条件为真时执行),和另一个结果表达式(条件为假时执行)。

let accessAllowed = age > 18 ? 'Access granted' : 'Access denied';
console.log(accessAllowed);


这个运算符非常适合于在单行内进行简单的条件判断和值分配,从而使代码更加简洁。


总结

逻辑运算符在处理程序中的决策逻辑时发挥着至关重要的作用。通过合理使用这些运算符,可以有效地控制程序的行为,提高代码的清晰度和效率。了解逻辑运算符和它们的短路行为,以及如何使用条件运算符,对于编写高效的JavaScript代码非常重要

相关文章
|
5月前
|
JavaScript 前端开发
JavaScript 比较 和 逻辑运算符
JavaScript 比较 和 逻辑运算符
37 6
|
6月前
|
JavaScript 前端开发
JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符
这篇文章详细介绍了JavaScript中的强制类型转换、运算符(包括算术、逻辑、条件、赋值和关系运算符)的使用方法和优先级规则。
JavaScript基础&实战(2)js中的强制类型转换、运算符、关系运算符、逻辑运算符、条件运算符
|
JavaScript
JS中的逻辑运算符&&、||
1、JS中的||符号: 运算方法:
47 0
|
JavaScript 前端开发
JavaScript 比较 和 逻辑运算符
JavaScript 比较 和 逻辑运算符
58 0
|
前端开发
前端知识案例15-javascript基础语法-逻辑运算符
前端知识案例15-javascript基础语法-逻辑运算符
84 0
前端知识案例15-javascript基础语法-逻辑运算符
|
JavaScript 前端开发 算法
精讲 JavaScript 逻辑运算符:与、或、非
精讲 JavaScript 逻辑运算符:与、或、非
1252 0
精讲 JavaScript 逻辑运算符:与、或、非
|
JavaScript PHP Python
PHP、JS、Python逻辑运算符||和位运算符|
PHP、JS、Python逻辑运算符||和位运算符|
156 0
PHP、JS、Python逻辑运算符||和位运算符|
|
JavaScript PHP Python
PHP、JS、Python逻辑运算符||和位运算符|
PHP、JS、Python逻辑运算符||和位运算符|
117 0
|
JavaScript 前端开发
07-JavaScript基础-关系运算符和逻辑运算符
关系运算符 为什么要学习关系运算符? 默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码 这种情况的话可以使用条件语句来完成,但是学习条件语句之前,我们先来看一些更基础的知识:如何判断一个条件成不成立。
1034 0
|
3月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
34 0

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    46
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    55