JS 4个超级实用的小技巧 提升开发效率


Posted in Javascript onOctober 05, 2021

1、短路判断

当只需要简单的if条件时,可使用此方法

let x = 0;
let foo = () => console.log('执行了');

if(x === 0){
  foo()
}

通过使用&&运算符来实现同样的if功能,如果&&之前的条件为false,则&&之后的代码将不会执行。

let x = 0;
let foo = () => console.log('执行了');

x === 0 && foo()

还可增加更多的if条件,不过这也会增加语句的复杂性,不建议超过2个以上条件。

let x = 0;
let y = 0;
let foo = () => console.log('执行了');

x === 0 && y === 0 && foo()

2、可选链操作符 ( ? )

我们经常会判断JS对象中是否存在某个key,因为有时不确定后台API返回的数据是否是正确的。

user对象中包含一个属性name的对象,name对象有一个属性firstName,使用user.name.firstName直接进行判断的话,如果name属性不存在的话就会报错,所以在判断之前还需要判断user.name是否存在,需要嵌套两层if判断。

let user = {
  name : {
    firstName : '傲夫靠斯'
  }
}

if(user.name){
  if(user.name.firstName){
    console.log('user对象 包含 firstName 字段')
  }
}

这时我们可以使用?操作符进行简化操作,如果user.name不存在,也将返回false,所以直接使用一层判断

let user = {
  name : {
    firstName : '傲夫靠斯'
  }
}

if(user.name?.firstName){
  console.log('user对象 包含 firstName 字段')
}

3、空值合并操作符 ( ?? )

与if/else相比来说,三元运算符更加简短。如果逻辑简单,使用起来很方便。

例如:

let user = {
  name : {
    firstName : '傲夫靠斯'
  }
}

let foo = () => {
  return user.name?.firstName ? 
    user.name.firstName : 
    'firstName 不存在'
}

console.log(foo())

首先使用?运算符来判读是否存在,存在即返回,不存在则返回false,进入后面的逻辑

使用??运算法使代码更加精简

let user = {
  name : {
    firstName : '傲夫靠斯'
  }
}

let foo = () => {
  return user.name?.firstName ?? 
  'firstName 不存在'
}
  
console.log(foo())

4、return终止函数

下面函数判断x的值,使用大量if else嵌套

let x = 1;
let foo = () => {
  if(x < 1){
    return 'x 小于 1'
  } else {
    if(x > 1){
      return 'x 大于 1'
    }else{
      return 'x 等于 1'
    }
  }
}

console.log(foo())

这种if else嵌套可以删除else条件来简化代码,因为return语句将终止代码执行并返回函数。

let x = 1;
let foo = () => {
  if(x < 1){
    return 'x 小于 1'
  }
  if(x > 1){
    return 'x 大于 '
  }
  return 'x 等于 1'
}

console.log(foo())

到此这篇关于JS 4个超级实用的小技巧 提升开发效率的文章就介绍到这了,更多相关4个实用JS小技巧 提升开发效率内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
Nov 10 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
Feb 18 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
JS图片预加载插件详解
Jun 21 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 Javascript
详解小程序横屏方案对比
Jun 28 Javascript
JavaScript实现弹出窗口效果
Dec 09 Javascript
JavaScript实现简单拖拽效果
Sep 15 #Javascript
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 #Javascript
Javascript之datagrid查询详解
Sep 15 #Javascript
Js类的构建与继承案例详解
Sep 15 #Javascript
JavaScript 数组去重详解
Sep 15 #Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 #Javascript
JavaScript小技巧带你提升你的代码技能
Sep 15 #Javascript
You might like
实现树状结构的两种方法
2006/10/09 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Python实现的Excel文件读写类
2015/07/30 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
浅析python参数的知识点
2018/12/10 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
公证书标准格式
2014/04/10 职场文书
食品卫生管理制度
2015/08/06 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS