Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2013, 14:12
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

Лексическая структура JavaScript, раскройте тему более подробно
Добрый день, раскройте пожалуйста более подробно о лексической структуре JavaScript. Например, поясните по-подробней, что означают эти слова, желательно привести примеры.

Лексема - это
Идентификатор - это
Литерал - это
Инструкция - это
Выражение - это
Ключевое слово - это
Оператор - это
Операнд - это
Операция - это

Например "true" может быть одновременно и литералом и выражением, такие примеры тоже приведите. Хочу поностью раскрыть тему о лексической структуре JavaScript, а то даже у Флэнагана она плохо раскрыта, а о других авторах даже говорить не хочется. Добавьте к камментам, может я еще забыл какую-нибудь часть лексической структуры языка. Спасибо.

Последний раз редактировалось Damir, 07.02.2013 в 14:23.
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2013, 14:31
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Damir,

Вы действительно читали Флэнагана ??? Очень сомневаюсь... У него нормально описано с примерами.

Открыл, для примера:
Литерал – это значение, указанное непосредственно в тексте программы. Ниже приведены примеры литералов:
12 // Число двенадцать
1.2 // Число одна целая две десятых
"hello world" // Строка текста
'Hi' // Другая строка
true // Логическое значение
false // Другое логическое значение
/javascript/gi // Регулярное выражение (для поиска по шаблону)
null // Отсутствие объекта

Идентификатор – это просто имя. В JavaScript идентификаторы выступают в качестве названий переменных и функций, а также меток некоторых циклов.Примеры допустимых идентификаторов:
i
my_variable_name
v13
_dummy
$str

Советую перечитать ещё раз более внимательно.

UPD. Для ленивых книгу можно найти там => http://free-kniga.ru/index.php?option=com_content&task=view&id=885&Item id=107

Последний раз редактировалось Hoshinokoe, 07.02.2013 в 16:43.
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2013, 15:15
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

Hoshinokoe, спасибо вы дали два определения, осталось еще семь
вопрос, может ли быть идентификатором имя объекта и имя массива?
Ответить с цитированием
  #4 (permalink)  
Старый 09.02.2013, 12:39
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

up
Ответить с цитированием
  #5 (permalink)  
Старый 09.02.2013, 15:13
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

Порылся в инете, перелопатил множество источников, в итоге дал примерно следующие определения, всё ли верно? Там где есть «многоточие» предполагается, что список не окончен, что можно туда добавить? Также ответьте на вопросы, они выделены курсивом.

Лексическая структура JavaScript

Лексема – это минимальная единица языка, имеющая самостоятельный смысл. К лексеме относятся: идентификаторы, ключевые слова, литералы, операции, символы, фразы, слова, разделители… Лексема располагается между пробелами, табуляцией или переносом строки.

Идентификатор – это имя переменной, функции, объекта, меток у некоторых циклов… Могут ли в качестве идентификатора выступать имена свойств и методов объекта, имена массивов?

Литерал – это число, строка или логическое значение, которые используются в качестве значения.
Например а = 5; 5 будет литералом, document.write(«Привет, Мир!»); «Привет, Мир!» будет литералом или return true; true будет литералом.

Операнд – это пременная или его значение, выступающее в качестве части выражения. Выражение тоже может быть операндом. Например, x = y + z; здесь в качестве операндов выступают x, z и y.

Оператор – это структурная единица программы, указывающее совершить какое либо действие, оканчивается точкой с запятой. Например, x = y + z;, условный оператор if () {}, циклы.Приведите пожалуйста еще примеры.

Инструкцияэто оператор?

Выражение – это любая комбинация переменных и операций, которая может быть вычислена интерпретатором для получения значения. Пример: 5 + 3 – выражение.

Операция – это, почти тоже самое что и выражение. Операции могут быть арифметическими, логическими, сравнения и присваивания.

Ключевое слово – это часть синтаксиса ядра языка, так называемый предопределённый идентификатор. Его нельзя использовать в качестве имени идентификатора. Например, break, delete, function, if и т.д.

Зарезервированное слово – это часть синтаксиса ядра языка, которое планируется использовать в будущем, использовать их в качестве идентификатора не рекомендуется. Например: const, import, int, long и т.д.

Последний раз редактировалось Damir, 09.02.2013 в 15:17.
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2013, 15:18
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

ап
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2013, 08:55
Интересующийся
Отправить личное сообщение для Damir Посмотреть профиль Найти все сообщения от Damir
 
Регистрация: 10.09.2009
Сообщений: 14

ап
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2013, 10:07
Аватар для megaupload
Профессор
Отправить личное сообщение для megaupload Посмотреть профиль Найти все сообщения от megaupload
 
Регистрация: 18.01.2013
Сообщений: 1,098

Лексическая структура JavaScript

Лексема – ну это типа как группа сивмволов разделеная пробелом, типа как слово языка программирования, только вот некоторые лексемы могут содержать из нескольких штук разделеными пробелами, например function ( ) { } это одна лексема и состоит она из слова и четырех скобочек. а this это вторая лексема и состоит она из одного слова. вообще лексема это к языку не относится это скорее к интерпритатору котоый код разбирать будет. сначала на токены а потом из них лексемы собирать. например function ( ) { } это 5 токенов ииз них собирается одна лексема. токены это как буквы а лексемы это как слова, все просто))

Идентификатор – хуита которая служат указателем на что то. например имя переменной. ты волен называть айдишником все что на что то указывает.


Литерал – значения можно как вычислять на ходу программы а можно как и вручную прописать то есть то что мы пишем тупо руками это ЛИТЕРАЛ, ЖЕЛЕЗНОЕ значение)) типа как под диктовку. 1212 - литерал.
литерал это когда значение генерируется из нашего кода "под диктовку" а не по ходу выполнения программы из за каких то вычислений.


Оператор – ну это команда которая означает что надо сделать какое то действие.

Операнд – это штуки над которыми будут производиться какие-то действия. например оператор if производит действия над выражениями, для него выражения будут операндами, оператор + производит действия над тем что слева и тем что справа от него, для него они будут операндами, все просто) как в школе ну.


Инструкция – впервые слышу


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


Операция – операция это то что делает оператор, действия над операндами.. это ж очевидно блять.


Ключевое слово – ну короче переменные человек волен придумывать сам а чтобы комп как то понмиал что это не просто имя переменной а какая то команда зарезервировали ключивые слова которые нельзя исполльхзовать в качестве имен переменных, например if this function и.т.п. короче по просту это служебные слова для языка.


Зарезервированное слово – ну языки развиваются и они в самом начале забили все слова которые могут использовать в будущем как ключивые, это как ключивое слово которое пока не работает но в будущем на него повесят какой нить оператор их там дофига поназабивали, чтобы яуже щас не мог использовать их в качестве имен переменных, да, щас ошибку интерпритатор не выдаст но новые интерпритаторы мой код хавать перестанут по этому эти слова надо знать и не называть так переменныен чтобы мой код работал и лет через 5.

Последний раз редактировалось megaupload, 25.03.2013 в 10:58.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Web Team lead (Ruby on Rails / JavaScript) Мск до 200тр и более Svet2010 Работа 0 27.09.2012 11:21
Рассуждения на тему JavaScript last-art Оффтопик 4 19.04.2012 20:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34