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 相关文章推荐
javascript 添加和移除函数的通用方法
Oct 20 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
JS 毫秒转时间示例代码
Sep 22 Javascript
jquery将一个表单序列化为一个对象的方法
Dec 02 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 Javascript
webpack4 升级迁移的实现
Sep 12 Javascript
判断js数据类型的函数实例详解
May 23 Javascript
微信小程序实现分页加载效果
Nov 19 Javascript
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
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
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
php数组指针操作详解
2017/02/14 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
深入理解Python变量与常量
2016/06/02 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Python用字典构建多级菜单功能
2019/07/11 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
python django model联合主键的例子
2019/08/06 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python构建指数平滑预测模型示例
2019/11/21 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
python中的时区问题
2021/01/14 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
董事长助理岗位职责
2014/02/18 职场文书
内勤主管岗位职责
2014/04/03 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
公司捐书倡议书
2015/04/27 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书