当前位置:  开发笔记 > 编程语言 > 正文

es6 arrow函数调试器语句

如何解决《es6arrow函数调试器语句》经验,为你挑选了1个好方法。

如果我有这样的功能:

param => params + 1

我需要debugger在函数体内放一个语句.是这样添加括号:

param => { debugger; return params + 1 }

唯一的选择?



1> lleaff..:

来自MDN关于箭头功能的文章:

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression

您可以看到无括号语法要求箭头右侧的代码是表达式,这是语言本身所做的(不幸)区分.

因为debugger是一个语句,所以在任何地方使用表达式都是语法错误.你可以解决这个问题的一个方法是在一个表达式中转换你的调试器语句,你可以用JavaScript来评估但不返回,例如:

function debug(args) {
     debugger;
     return true;
}

params => debug() && params + 1

// or

params => console.log(params) || params + 1

这种方式的工作原理是,由于逻辑运算符在JavaScript 中的运行方式,这是正确的:

truthyA && B  === B

falsyA || B === B

当链接逻辑运算符时,JavaScript从左到右计算子表达式,然后根据它们的布尔等价物进行操作.这就是为什么你有时会看到&&用来代替if陈述的原因:

 if (smth) doStuff();
 // is equivalent to:
 smth && doStuff();


逗号运算符在这些情况下也很有用,尽管看起来大多数人都不知道它.
是MOAR UPVOTES PLS.不过但严重的是,谷歌很好地将其编入索引,因此其他人可能会在未来最终解决这个问题,不妨给他们最好的答案.另外,我只想解释这种东西.
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有