Да уж. Выражение из двух слов, где ни одно из них непонятно ))) Как и выражение в целом. Вот такой он, современный русский язык.
Сегодня на примере языка программирования JavaScript расскажу об этой самой ассоциативности. Но сначала попробую хоть как-то перевести это на русский язык.
Слово “ассоциативность” произошло от латинского “associatio” (соединение, связь).
Слово “оператор” в современном русском языке имеет очень много значений. Но если попробовать перевести, то это получится какая-то штука (или человек), выполняющая операции. А “операция” происходит опять же от латинского слова “operatio” (действие). То есть оператор выполняет некие действия для достижения какой-либо цели.
И тогда выражение “ассоциативность операторов” можно перевести как “связь действий”, или “взаимосвязь действий”. Тоже пока не очень понятно, но хотя бы по русски.
Ну а теперь к сути…
Как известно, в любом языке программирование операторы в сложных выражениях выполняются в очерёдности согласно приоритету операций. Таблицу приоритетов операторов в JavaScript можно найти здесь.
Однако у некоторых операторов одинаковый приоритет (например + и -). Так вот, ассоциативность операторов определяет порядок выполнения операций с одинаковым приоритетом.
В большинстве случаев операторы с одинаковым приоритетом в выражении выполняются слева направо. Например:
x = 1 + 3 + 8 - 2;
Здесь сначала к 1 прибавляется 3, в результате получается 4. Затем к результату прибавляется 8, и от полученного результата отнимается 2. То есть выполнение операций в выражении происходит слева направо, и для этих операторов ассоциативность будет “слева направо”.
Однако есть операторы, которые имеют ассоциативность справа налево. Например, это унарные операторы, операторы присваивания и условные тернарные операторы. Пример оператора присваивания:
a = b = c = 10;
Здесь сначала число 10 мы присваиваем переменной с, затем переменной b присваиваем значение переменной с, затем переменной а присваиваем значение переменной b. То есть действия выполняются справа налево.
Кроме того, вы можете изменить ассоциативность операторов с помощью скобок:
x = 1 + 3 + (8 - 2);
Здесь мы сначала от 8 отнимаем 2, ну а затем уже выполняются остальные операции в обычном порядке. И хотя на результат в данном случае это не повлияет, ассоциативность будет уже другой.
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.