具有不同参数传递的Javascript函数
最近我遇到了一个javascript函数的好例子。请在下面的代码中查找具有不同参数传递的Javascript函数,javascript,function,parameter-passing,Javascript,Function,Parameter Passing,最近我遇到了一个javascript函数的好例子。请在下面的代码中查找 function add(a,b){ return (a+b); } console.log("Summation is===>",add(1,2)); console.log("Summation is===>",add((1),(2))); 两个打印输出都有一个3。 两个函数参数之间的区别是什么?第二个函数参数与第一个函数参数有何不同 两个函数参数之间的区别是什么 什么都没有。除了极少数例外*
function add(a,b){
return (a+b);
}
console.log("Summation is===>",add(1,2));
console.log("Summation is===>",add((1),(2)));
两个打印输出都有一个3。
两个函数参数之间的区别是什么?第二个函数参数与第一个函数参数有何不同
两个函数参数之间的区别是什么
什么都没有。除了极少数例外*,将分组运算符(()
)放在已经隔离的表达式周围根本没有效果。add(1,2)
中的1
和2
已被隔离
*极少数例外情况中的一些(全部?嘿,可能不是):
返回中的单个表达式放置在返回的另一行上,例如:
return // WRONG
expression;
您必须像这样在它周围放置()
:
return (
expression
);
() => ({foo: "bar"})
防止自动插入分号的恐怖行为添加
afterreturn
换行符所在的位置,会产生一个非常微妙的错误(因为return;
之后的表达式本身并不是一个错误,尽管lint工具有望帮助您捕获它)
() => {foo: "bar"} // WRONG
必须将对象初始值设定项包装在()
中,以避免将初始值设定项的{
作为函数体的开头,如下所示:
return (
expression
);
() => ({foo: "bar"})
function
关键字前面加上一些内容,否则它将启动函数声明而不是函数表达式。可以是告诉解析器从需要语句切换到需要exp但是,()
是一种常见的选择,特别是对于一种生活:
(function() { /*...*/})();
旁注:您在
return(a+b);
中使用的分组运算符无效,因为它是一个独立的表达式,您没有处理上面的#1。一个LISP程序员创建了这些示例?