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 Archive Network 集合
May 12 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
js读取配置文件自写
Feb 11 Javascript
javascript单页面手势滑屏切换原理详解
Mar 21 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 Javascript
JavaScript中ES6 Babel正确安装过程
Jul 18 Javascript
zTree实现节点修改的实时刷新功能
Mar 20 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
Vue基本使用之对象提供的属性功能
Apr 30 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
JavaScript隐式类型转换代码实例
May 29 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
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
PHP插入排序实现代码
2013/04/04 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
JS实现可改变列宽的table实例
2013/07/02 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
如何完美的建立一个python项目
2020/10/09 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
软件售后服务方案
2014/05/29 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
党校培训学习心得体会
2016/01/06 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL