JS|JS 4个超级实用的小技巧 提升开发效率
目录
- 1、短路判断
- 2、可选链操作符 ( ? )
- 3、空值合并操作符 ( ?? )
- 4、return终止函数
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())
【JS|JS 4个超级实用的小技巧 提升开发效率】
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小技巧 提升开发效率内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 科学养胃,别被忽悠,其实真的很简单
- 其实你就是个普通人
- 海院(实干是海院风景(上))
- 你眼里的不公平,其实很公平
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入