前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js中逗号hack表达式用法

js中逗号hack表达式用法

原创
作者头像
IT工作者
发布2022-01-01 10:47:24
2.4K0
发布2022-01-01 10:47:24
举报
文章被收录于专栏:程序技术知识程序技术知识

js中发现了一个有趣但可能有用的东西,它与逗号运算符有关。

我们主要使用逗号分隔对象或数组项中的属性。

然而,我从来没有注意过它在表达式中的用法。

例如:

代码语言:javascript
复制
('a', 'b')

这两个表达式(在本例中是字符串)都被计算,这将返回最后一个元素,即最后一个逗号之后的表达式。在本例中,它返回“b”。

可以将值赋给变量,如下所示:

代码语言:javascript
复制
const letter = ('a', 'b')
letter === 'b' //true

如果只是用简单值,这几乎没有任何意义。

不过当我们可以运行任何表达式,包括函数调用,而不是计算“a”字符串,这将非常实用。

思考下面的代码:

代码语言:javascript
复制
const doStart = () => {console.log(started)}
let started = false

const start = (
  started = true,
  doStart
)

现在start是对doStart()函数的引用,但是当您调用start()时,started变量为true:

代码语言:javascript
复制
start() // true

你甚至还可以使用两个以上的表达式:

代码语言:javascript
复制
const start = (
  started = true,
  stopped = false,
  doStart
)

这个“技巧”可以用来修饰一个你无法控制的函数,但是为了简单起见,最好还是创建一个新函数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档