Цитата:
|
Цитата:
Цитата:
alert(("a" + "b") + "c" === "a" + ("b" + "c")); // true, поскольку ассоциативность выполняется alert((1 + 2) + 3 === 1 + (2 + 3)); // true, поскольку ассоциативность выполняется alert((1 + 1) + "1" === 1 + (1 + "1")); // false, вы конечно можете и тут подобрать true, но тут разные типы, это плохая практика — отстреливать себе ноги и играть с мухой без головы, понапихают разного рандомного говна в операнды, а потом сидят и задают тупые вопросы, типа а почему там нет ассоциативности! Цитата:
|
Цитата:
|
Цитата:
Цитата:
В нем ничего не говорится, что если типы одинаковы, то есть ассоциативность, а если разные то ассоциативности нет... Просто есть алгоритм, как выполняется операция с учетом возможных типов |
Цитата:
Но про ассоциативность в программировании просто говорить бессмысленно. Так же, как и про коммутативность. a+(b+c) == (a+b)+c ? a+b == b+a ? Когда как. Мы же не знаем, что такое а, b, c. А может быть это вызовы функций с побочным эффектом? Просто есть правила выполнения операций. a * b Вычисли а, приведи к числовому типу Вычисли b, приведи к числовому типу (именно в такой последовательности, а не наоборот) Результаты арифметически перемножь |
Цитата:
|
Malleys всё чётко объяснил, зачем это мозгоблудие? И приоритет есть для операндов и ассоциативность. Все дело именно в применение toBoolean. для js оно такое. Возможно что-то похожее есть и в др. языках. Давайте закруглять тему.
|
Часовой пояс GMT +3, время: 20:19. |