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 相关文章推荐
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
基于javascript实现根据身份证号码识别性别和年龄
Jan 22 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
Oct 11 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
Jun 19 Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
JavaScript防止全局变量污染的方法总结
Aug 02 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
vue element-ui读取pdf文件的方法
Nov 26 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 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 curl参数的详解
2013/06/17 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
php实现的验证码文件类实例
2015/06/18 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php显示页码分页类的封装
2017/06/08 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
独特的python循环语句
2016/11/20 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书