JavaScript Return
今天一起了解一下 JavaScript 中的 return 语句。
语法
return 语句用于指定函数的返回值。当 JavaScript 遇到 return 语句时,函数将立即返回,并且不再执行任何后续的语句。
1 | return [expression]; // expression 是要返回的值 |
1 | function add(a, b) { |
如果省略 expression,或者 return 语句没有在函数中,则返回值为 undefined。
1 | return; // undefined |
return后面省略表达式,返回值为undefined。
1 | function foo() { |
没有return语句,也返回undefined。
1 | function bar() { |
返回对象
return 语句返回复杂值时,return不能独占一行,否则会报错。
下面这样写会导致语法错误。
1 | function getPerson() { |
正确的写法是:
1 | function getPerson() { |
try…catch…finally
如果在 try-catch-finally 语句块中使用了 return 语句,则执行顺序如下:
- 先计算return后面的表达式的值。
- 然后执行
finally语句块中的代码。 - 最后return步骤1中计算出的值。
1 | function foo() { |
再看一个复杂的例子
1 | function foo() { |
为啥结果是1 2 1呢?
- try中`console.log(a)输出1,这个很好理解。
return a++,这里的a++是先返回a的值,然后再执行a++,所以return返回的是1。finally中console.log(a)输出的是2,因为a++执行了一次。
所以执行的顺序是:
- 先计算return后面的表达式,a = 2.
- 然后执行finally中的代码,输出a = 2
- 最后return返回1.