В чем разница между return и return()?
function a() { return 1; }
function b() { return(1); }
Я тестировал вышеуказанный код в консоли Chrome, и оба возвращали 1
.
function c() { return "1"; }
function d() { return("1"); }
Я также проверил код выше, и обе функции возвратили "1"
.
В чем разница между использованием return
и return()
?
Ответы
Ответ 1
То же, что между
var i = 1 + 1;
и
var i = (1 + 1);
То есть ничего. Скобки доступны, потому что они разрешены в любом выражении, чтобы влиять на порядок оценки, но в ваших примерах они просто лишние.
return
- это не функция, а инструкция. Он синтаксически похож на другие простые операторы потока управления, такие как break
и continue
, которые также не используют круглые скобки.
Ответ 2
Нет никакой разницы.
return
не является вызовом функции, а является выражением языка. Все, что вы делаете с круглыми скобками, просто группирует возвращаемое значение, чтобы оно могло быть оценено. Например, вы можете написать:
return (x == 0);
В этом случае вы возвращаете значение инструкции x == 0
, которая вернет логическое значение true
или false
в зависимости от значения x
.
Ответ 3
Фактически здесь приоритет ()
выше, поэтому он сначала оценивает:
Здесь сначала ("1")
оценивается следующим образом:
("1") ==> "1"
("1","2") ==> "2"
("1","2","3") ==> "3"
("1"+"2","2"+"2","3"+"2") ==> "32"
(2+3+6) ==> 11
поэтому оператор выше эквивалентен:
return "1";
Смотрите визуально:
![viusal]()
Таким образом, в функциональности нет принципиальной разницы, но во-вторых, это может быть незначительно медленным, поскольку сначала разрешает скобки.
Ответ 4
Нет разницы, скобки необязательны. См. MSDN:
return[(][expression][)];
Необязательный аргумент выражения - это значение, возвращаемое функцией. Если опустить, функция не возвращает значение.
Вы используете оператор return, чтобы остановить выполнение функции и вернуть значение выражения. Если выражение опущено или оператор return не выполняется из функции, выражению, вызывающему текущую функцию, присваивается значение undefined.
Ответ 5
Нет абсолютно никакой разницы. Если вы посмотрите на инструкцию JS (ECMAScript) спецификации return. Среди многих других вещей он говорит вам:
return [no LineTerminator here] Expression;
что вы можете предоставить выражение return
. Выражение hello
, Math.abs(x)
, yourCustomFunc(7)
, или во втором случае это может быть 1
или (1)
. Выражение 1
после оценки такое же, как (1)
и то же, что и (((((1))))))
, или даже как-то действительно странное, как (+(!(+(!1))))
.
Ответ 6
return
представляет собой оператор ключевое слово, которое запускает оператор return, не функция.
Как уже упоминалось, дополнительные круглые скобки влияют на порядок оценки, но не используются для "выполнения" функции с именем return
. Вот почему эти линии работают без проблем:
return (1);
var a = (1);
Они, по сути, идентичны этим строкам:
return 1;
var a = 1;
Причина return()
выдает синтаксическую ошибку для точной причины следующая строка выдает ошибку (оператор возврата включен для сравнения)
return(); // SyntaxError: syntax error
var a = (); // SyntaxError: syntax error
Ответ 7
Существует огромная разница для людей и нулевая разница для движка Javascript.
return 1
- это оператор, объявляющий, что нам нужно немедленно выйти из функции, дающей значение 1.
return(1)
- это то же самое выражение, замаскированное под вызов функции идиотическим соглашением, что вы не обязаны вставлять пространство вне круглых скобок в Javascript. Если бы вы использовали такой код в производственной системе, любой сопровождающий придет в ваш офис с пакетом акций и факелами, потратив некоторое время на то, чтобы решить, действительно ли у вас есть функция return()
где-то в базе кода или просто не знаете, что return
ключевое слово для.
Как и многие другие люди уже правильно сказали, круглые скобки не делают ничего, кроме "группы" с более высоким приоритетом, буква для Number
1.
Ответ 8
В операторе return круглые скобки вокруг выражения уже встроены.
В JavaScript, как и во многих других языках (например, C, С++, Java, Python), оператор return имеет две части: ключевое слово return
и (необязательное) выражение. Таким образом, в любом случае все, что следует за ключевым словом return
, сначала оценивается как выражение, после этого оператор return "выполняется", передавая управление обратно вызывающему.
Использовать или не использовать круглые скобки - это вопрос стиля, тогда как большинство руководств по стилю запрещают им тривиальные случаи, подобные тем, которые указаны в вашем вопросе, потому что он делает ложную обратную функцию как функцию.