Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разница между выражениями и инструкциями (https://javascript.ru/forum/misc/25447-raznica-mezhdu-vyrazheniyami-i-instrukciyami.html)

B@rmaley.e><e 06.02.2012 15:25

Цитата:

Сообщение от Maxmaxmaximus
то есть инструкции это ТО, что разделено точкой с запятой? обьясните тогда и мне уж.

Тут написано, что является инструкцией.

Цитата:

Сообщение от Maxmaxmaximus
логично было бы не декларировать функцию если условие не верно.

Было бы логично, если бы была видимость на уровне блоков, а не функций. Коль скоро есть подъём локальных переменных, глупо было бы не делать его для локальных функций.

StasTelnov 03.07.2012 10:57

Все гениальное - просто!
 
Выражение - это фраза языка JavaScript, которая может быть вычислена интерпретатором для получения значения. Простейшие выражения - это литералы.
Операторы служат для объединения простых выражений в более сложные (составные). Иначе: оператор - действие над простейшими выражениями (операндами).
Инструкции - "полноценные предложения" (команды) языка JavaScript, задающие логику программы (каркас, структуру).
Инструкция-выражение - это выражение имеющее побочные эффекты. Например: составные выражения, содержащие операторы '=', '++' , '--', '()' ,'delete'.

bes 03.07.2012 13:30

Аксиоматический подход в построении системы понятий, на мой взгляд, лучшее решение (но почему-то пока это слабо используется, наглядный пример - определения википедии, это и понятно, так как ставка там на авторитетные источники, что, в приницпе, не обязывает использовать логику).
Так как, на мой взгляд, сейчас нет кроссязыковой (js далеко не единственный язык программирования) аксиоматически построенной системы исходных понятий, поэтому лично я обычно ориентируюсь на практическую часть (то как всё это применять).

В контексте js стандарт языка является определяющим документом, хотя хотелось бы именно кроссязыковую систему определений понятий.
Базовым неопределяемым понятием такой системы являются данные (они же информация и т.п.), обычно в тексте программы данные представлены собственно значениями (литералами) и другими конструкциями, из которых эти значения можно получить (переменные и т.п.).

Всё остальное - разброс, например, инструкции типа if, switch и т.д. можно считать и сложными операторами, блок кода - составной оператор и т.п.
На мой взгляд, инструкция (она же команда) - это вообще одно из исходных понятий, хотя бы потому, что в итоге всё сводится к машинным командам, но разные подходы - разные взгляды.

oneguy 03.07.2012 17:39

Мы не будем брать ко вниманию автотическую подстановку точки с запятой, будем считать, что они везде расставлены, где надо.
Тогда выражение не может являться одновременно инструкцией.
Это выражения (без ";" вконце)
a=x+y+z
1
i++
a=b?0:1, func(y++)+a>>2

Выражение-инструкция - это выражение с ";" вконце. Выражения-инструкции являются видом инструкций, но не выражений. То есть следующие являются одновременно инструкциями и выражениями-инструкциями, но не выражениями:
a=x+y+z;
1;
i++;
a=b?0:1, func(y++)+a>>2;

Цитата:

Сообщение от StasTelnov
Инструкция-выражение - это выражение имеющее побочные эффекты. Например: составные выражения, содержащие операторы '=', '++' , '--', '()' ,'delete'.

Это неправильно. Инструкция-выражение - это то, что описано выше.

oneguy 03.07.2012 17:45

Цитата:

Сообщение от B@rmaley.e><e
Тут написано, что является инструкцией.

Лучше давать ссылку на новую спецификацию:
http://es5.javascript.ru/x12.html#x12

with-love-from-siberia 03.07.2012 21:35

Вовочка,
здесь правильно показали, чем являются инструкции и выражения.

Фактически, любая программа состоит из инструкций (можно использовать синоним - оператор). Некоторые инструкции возвращают результат. Тогда они называются выражениями.

Sekretek 15.10.2020 01:22

Вложений: 1
Выражение вычисляет значение по набору операндов, используя операторы, а если требуется вычислить несколько значений, если что-то необходимо сделать многократно, если надо сделать выбор из нескольких альтернатив, если нам нужно считать входную информацию или вывести результат: для создания таких выражений существуют специальные конструкции, именуемые инструкциями.
(Источник: книга "Программирование. Принципы и практика использования C++" Автор — Бьерн Страуструп страница 141 Глава 4, раздел 4: Вычисления, Инструкции)


Часовой пояс GMT +3, время: 09:08.