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 相关文章推荐
利用腾讯的ip地址库做ip物理地址定位
Jul 24 Javascript
Javascript中的this绑定介绍
Sep 22 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
Jan 24 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
webpack 2.x配置reactjs基本开发环境详解
Aug 08 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
Jan 31 jQuery
在vue项目中使用sass的配置方法
Mar 20 Javascript
微信小程序实现购物页面左右联动
Feb 15 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
Jun 19 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 等比例缩放图片详解及实例代码
2016/09/18 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python调用C++程序的方法详解
2017/01/24 Python
python实现图片压缩代码实例
2019/08/12 Python
详解python statistics模块及函数用法
2019/10/27 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
python关于变量名的基础知识点
2020/03/03 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
Python如何对XML 解析
2020/06/28 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
自行车广告词大全
2014/03/21 职场文书
户籍证明格式
2014/09/15 职场文书
党员活动总结
2015/02/04 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
golang语言指针操作
2022/04/14 Golang