Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 February 20

D

Dmitry in NodeUA - JavaScript and Node.js in Ukraine
Глеб
i = 0;
i = 1 (prefix increment operator; i = 1) + (1 (postfix increment operator: вернулось значение до инкремента, но сам i = 2 ) * 2 (опять вернулось значение до инкремента, но i = 3))

Итого,
i = 1 + (1 * 2) = 1 + 2 = 3
Этот ответ не правильный
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
То есть, то что умножение идет первым по приоритету это не имеет значени? Типа, сначала, ++i + (0 (postfix increment operator: вернулось значение до инкремента, но сам i = 1) * 1(опять вернулось значение до инкремента, но i=2). Итого: ++i (в даггый момент 2) + 0 - итого 3.
источник

D

Dmitry in NodeUA - JavaScript and Node.js in Ukraine
Igor Vivdich
То есть, то что умножение идет первым по приоритету это не имеет значени? Типа, сначала, ++i + (0 (postfix increment operator: вернулось значение до инкремента, но сам i = 1) * 1(опять вернулось значение до инкремента, но i=2). Итого: ++i (в даггый момент 2) + 0 - итого 3.
+
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
Dmitry
На момент сложения операция і++ была выполнена 2 раза соответственно на текущий момент і равно 2 то есть получается:
++2 + 0 => 3
не увидел, получается как у вас.
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
последовательность: постинкременты, преинкременты, умножение, сложение
получается 3+0*1
потому что постинкремент увеличил i, но вернул 0, а преинкремент (i уже =2) сразу вернул 3
источник

Г

Глеб in NodeUA - JavaScript and Node.js in Ukraine
Igor Vivdich
То есть, то что умножение идет первым по приоритету это не имеет значени? Типа, сначала, ++i + (0 (postfix increment operator: вернулось значение до инкремента, но сам i = 1) * 1(опять вернулось значение до инкремента, но i=2). Итого: ++i (в даггый момент 2) + 0 - итого 3.
после того, как отработал ++i в сгрупированном выражении уже не 0, а 1
источник

D

Dmitry in NodeUA - JavaScript and Node.js in Ukraine
Глеб
после того, как отработал ++i в сгрупированном выражении уже не 0, а 1
Выше есть ссылка по приоритетам операторов. ++і сработает только во время сложения
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
забавно, что такой синтетический пример вызвал столько вариантов. Вот вам еще, и по-прежнему 0: "i = i++ + i++ + i++ + i++" => 6.
источник

Г

Глеб in NodeUA - JavaScript and Node.js in Ukraine
Dmitry
Выше есть ссылка по приоритетам операторов. ++і сработает только во время сложения
нет, сначала отработает инкремент

по вашей логике какие здесь будут результаты?

let i = 0
i = ++i + i * ++i

или

let i = 0
i = ++i + i * i
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
Igor Vivdich
забавно, что такой синтетический пример вызвал столько вариантов. Вот вам еще, и по-прежнему 0: "i = i++ + i++ + i++ + i++" => 6.
это вообще изи, 0+1+2+3
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
Согласен, это так, на добивку к пониманию прошлого примера и спеке, что вы кинули. Для пущего интереса, некоторые постфиксы можно поменять на префиксы.
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
тогда будет 1+2+3+4=10
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
это что-то из разряда юзлес вопросов на собеседованиях?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
German Swan
это что-то из разряда юзлес вопросов на собеседованиях?
не согласен, такие вопросы очень полезны.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Они помогают выявить собеседующих тебя идиотов еще на ранних стадиях и спасут от работы в такой компании.
источник

GS

German Swan in NodeUA - JavaScript and Node.js in Ukraine
Вот тут согласен, не вижу смысла в таких вопросах и никогда такое не спрашиваю
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
Вообще да, прочитал про такое в статье про собеседование. Единственный плюс в таком вопросе - возможно найти небольшой пробел в знаниях, пусть и не особо релевантных. Тоже ведь немного странно, реакт заштудировал, а префиксы забыл.
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
Делать вывод на основе такого вопроса на собеседовании - вот где плохо наверное.
источник

I

Igor Vivdich in NodeUA - JavaScript and Node.js in Ukraine
и это для джунов наверное больше, если уж и пойти на такое, совсем клиника такое спрашивать у бородатых сеньйоров.
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Igor Vivdich
Вообще да, прочитал про такое в статье про собеседование. Единственный плюс в таком вопросе - возможно найти небольшой пробел в знаниях, пусть и не особо релевантных. Тоже ведь немного странно, реакт заштудировал, а префиксы забыл.
Полагаю в данном примере проверяется не пробел в знаниях, хотя данное не исключаю, а скорее способность к логическому мышлению. На сколько адекватно человек может решать задачи и сможет ли вообще достигнуть дна его решения.
Только тсс, никому не говори))
источник