gpt4 book ai didi

javascript - es6 箭头函数调试器语句

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:47 24 4
gpt4 key购买 nike

如果我有这样的功能:

param => params + 1

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

param => { debugger; return params + 1 }

唯一的选择?

最佳答案

来自MDN关于箭头函数的文章:

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

您可以看到无大括号语法要求箭头右侧的代码是一个表达式,这是一个(不幸的)distinction。由语言本身制作。

因为 debugger 是一个语句,所以在任何需要 expression 的地方使用它都是语法错误。你可以解决这个问题的一件事是将你的调试器语句转换为一个表达式,你可以欺骗 JavaScript 对其进行评估但不返回,例如:

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

params => debug() && params + 1

// or

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

它的工作方式是因为 logical operators 的方式在 JavaScript 中的函数,这是真的:

truthyA && B  === B

falsyA || B === B

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

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

关于javascript - es6 箭头函数调试器语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34513155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com