ES6中&&和 __ 鲜为人知的骚操作

简介: ES6中&&和 __ 鲜为人知的骚操作

众所周知,在es6中,逻辑运算符&&代表与条件,||代表或条件

let info = {
   
  name:"long",
  age:null
};

//&&
//info的name与age同时为真,则结果为真
if(info.name && info.age){
   
  console.log("与条件"); //与条件
}else{
   
  console.log("失败");
}

//||
//info的name或age,只要有一个为真,则结果为真
if(info.name || info.age){
   
  console.log("或条件"); //或条件
}else{
   
  console.log("失败");
}

代替if/else

但是,他们还可以代表if/else进行简化

let info = {
   name:"long"};

let name = info && info.name; //long

let isVip = false;
let vipPrice = isVip || 19;//19
decide() && true();

//如果decide()执行后为true,则执行true(),并输出true()的值;如果decide()执行后为false,则输出decide()执行后的结果,且不执行true()


//预计使用场景,有一个mongo查询条件where,当name存在时,匹配name数据
where= {
   age:19};
name && where.name = name;
decide() || false();

//如果decide()执行后为true,则执行decide(),并输出decide()的值,fasle()不执行;如果decide()执行后为false,则执行fasle(),且输出false()的结果
decide() && true() || fasle();

//如果decide()执行后为true,则执行true(),并输出true()的值;
//如果decide()执行后为false,则执行false(),并输出false()的值
目录
相关文章
|
存储 前端开发 JavaScript
ahooks 正式发布:值得拥抱的 React Hooks 工具库
ahook定位于一套基于 React Hooks 的工具库,核心围绕 React Hooks 的逻辑封装能力,降低代码复杂度和避免团队的重复建设为背景,共同建设和维护阿里经济体层面的 React Hooks 库。
23967 1
ahooks 正式发布:值得拥抱的 React Hooks 工具库
|
JavaScript 前端开发
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
|
JavaScript 数据格式
VUE element-ui下拉菜单el-select获取label值或value的值
VUE element-ui下拉菜单el-select获取label值或value的值
2897 0
VUE element-ui下拉菜单el-select获取label值或value的值
|
6月前
|
设计模式 算法 前端开发
【设计模式】【行为型模式】职责链模式(Chain of Responsibility)
一、入门 什么是职责链模式? 职责链模式是一种行为设计模式,它允许你将请求沿着一条链传递,直到有对象处理它为止。每个对象都有机会处理请求,或者将其传递给链中的下一个对象。 为什么需要职责链模式? 使用
264 16
|
6月前
|
设计模式 存储 Java
【设计模式】【行为型模式】备忘录模式(Memento)
一、入门 什么是备忘录模式? 备忘录模式(Memento Pattern)是一种行为设计模式,用于在不破坏封装性的前提下,捕获并外部化一个对象的内部状态,以便在需要时恢复该状态。它通常用于实现撤销操作
222 8
|
8月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
630 11
|
6月前
|
设计模式 消息中间件 Java
【设计模式】【行为型模式】命令模式(Command)
一、入门 什么是命令模式? 命令模式是一种行为设计模式,它将请求或操作封装为对象,从而使你可以用不同的请求对客户进行参数化,并支持请求的排队、记录、撤销等操作。 命令模式的核心是将“请求”封装为独立的
227 15
|
JavaScript 关系型数据库 Java
IDEA插件-EasyCode
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
814 0
IDEA插件-EasyCode
|
11月前
|
安全 网络协议 网络安全
无需花钱!教你申请免费 IP 地址 SSL 证书的完整指南
为IP地址配置SSL证书较为复杂,因大多数免费SSL证书仅支持域名验证,而不支持IP地址。SSL证书基于域名进行身份验证,而IP地址缺乏类似机制。通常,免费证书提供商如Let's Encrypt不支持IP地址,但JoySSL提供针对IP地址的免费试用SSL证书服务。用户需访问JoySSL官网注册并填写特定注册码230922获取资格,后续按提示提交申请并验证IP地址所有权。审核通过后可获得证书。JoySSL还提供多样化的证书选择、简便申请流程和优质技术支持,满足不同需求。
|
JavaScript
Vue3描述列表(Descriptions)
该组件库包含 `Descriptions` 和 `DescriptionsItem` 两种组件,需配合使用。`Descriptions` 用于构建描述列表,提供标题、操作区、边框、垂直布局等配置;`DescriptionsItem` 作为列表项,可自定义标签和内容样式。支持响应式布局,并集成了多个实用工具函数,如节流、事件监听等。可通过属性灵活调整列表样式与布局。
640 3
Vue3描述列表(Descriptions)