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 相关文章推荐
Prototype中dom对象方法汇总
Sep 17 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
深入浅析ES6 Class 中的 super 关键字
Oct 20 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
Vue中key的作用示例代码详解
Jun 10 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
php json转换相关知识(小结)
2018/12/21 PHP
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
Bootstrap实现水平排列的表单
2016/07/04 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python单例模式实例解析
2018/08/28 Python
django如何自己创建一个中间件
2019/07/24 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
增大python字体的方法步骤
2020/07/05 Python
python drf各类组件的用法和作用
2021/01/12 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
迅雷Cued工作心得体会
2014/01/27 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
Python&Matlab实现樱花的绘制
2022/04/07 Python