gpt4 book ai didi

javascript - 为什么 javascript 坚持对函数使用大括号而不对其他任何东西使用大括号?

转载 作者:行者123 更新时间:2023-11-29 16:34:35 26 4
gpt4 key购买 nike

在 javascript 中我可以有,例如,

var a = 1;
while (a < 10) a++;

if (a === 10) a = 1;

因此,在某些情况下不需要大括号(尽管我通常将它们放在里面是为了清楚起见,并防止 jshint 因缺少大括号而打扰我。)

奇怪的是(无论如何对我来说)function 的工作方式不一样。我愿意

function bar(a) { return a + 1; }

但是做不到

function foo(a) return bar(a);

function 有什么不同之处,以至于它不能像 ifwhile 等那样运行?

最佳答案

消除单行语句/表达式的大括号是许多语言的常见模式。

这只是(懒惰的:))程序员的语法糖。

如果 ifwhile 中有多个语句,您仍然需要在它们周围编写 {}

我个人建议始终这样做,因为忘记 {} 有时可能会导致不明显的错误:

let i = 0;
if (i > 0)
i++;
console.log('this still happens');

ES6 中添加的箭头函数允许使用函数实现相同的行为:

你的功能:

function bar(a) { return a + 1; }

可以不用 {} 编写,因为它只有一个表达式:

const bar = a => a + 1;

但是对于多个操作省略 {} 又会是一个错误:

let x = x => x + 1; console.log('this still happens');

您可以使用 , 来逃脱惩罚。链式表达式的运算符:

let i = 0;
if (i > 0)
i++, // <-- notice the comma
console.log('now this does not happen');

但这可能会导致代码的可读性大大降低。

底线是,在大多数情况下,默认使用 {} 是一个不错的选择。

关于javascript - 为什么 javascript 坚持对函数使用大括号而不对其他任何东西使用大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712929/

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