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 相关文章推荐
jQuery与ExtJS之选择实例分析
Aug 19 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
jQuery实现手机上输入后隐藏键盘功能
Jan 04 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
微信小程序可滑动月日历组件使用详解
Oct 21 Javascript
解决vue项目获取dom元素宽高总是不准确问题
Jul 29 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
简单的编程0基础下Python入门指引
2015/04/01 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python如何实现MySQL实例初始化详解
2017/11/06 Python
详解python做UI界面的方法
2019/02/27 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
乡镇干部先进事迹材料
2014/02/03 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
寒假家长评语大全
2014/04/16 职场文书
整改落实自查报告
2014/11/05 职场文书
个人党性分析材料
2014/12/19 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python