最近我通过一个很好的javascript函数示例。请在下面的代码中找到。
function add(a,b){
return (a+b);
}
console.log("Summation is===>",add(1,2));
console.log("Summation is===>",add((1),(2)));
两个打印输出都有3。 两个函数参数有什么区别?第二个函数参数与第一个函数参数有何不同?
答案 0 :(得分:3)
两个函数参数之间有什么区别?
没有任何一个。只有极少数例外*,将分组运算符(()
)放在已经隔离的表达式周围根本没有效果。 <{1}}中的1
和2
已经被隔离。
*一些(所有?嘿,可能不是)的极少数例外情况:
如果您想将单个表达式放在add(1,2)
与返回的单独行中,例如:
return
你必须像这样把return // WRONG
expression;
放在它周围:
()
防止自动分号插入的恐怖在换行符return (
expression
);
之后添加;
,创建一个非常微妙的错误(因为在return
之后表达式自己这不是一个错误,虽然一个lint工具可以帮助你抓住它。)
如果您在箭头函数上使用简洁的主体来返回对象初始值设定项的结果:
return;
你必须在() => {foo: "bar"} // WRONG
中包装对象初始值设定项,以避免初始值设定项的()
被视为函数体的开头,如下所示:
{
如果你想启动一个需要语句的函数表达式,你必须在() => ({foo: "bar"})
关键字前加一些东西,否则它会启动一个函数声明而不是函数表达式。它可以是告诉解析器从期望语句切换到期望表达式的几种事情中的任何一种,但function
是一种常见的选择,特别是对于IIFE:
()
旁注:您在(function() { /*...*/})();
中使用的分组运算符没有任何效果,因为它是一个孤立的表达式而您没有处理上面的#1。