Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Каково начальное значение переменной undefuned? (https://javascript.ru/forum/misc/29111-kakovo-nachalnoe-znachenie-peremennojj-undefuned.html)

dump 15.06.2012 15:05

Каково начальное значение переменной undefuned?
 
Почему код if (typeof a==undefined) alert('Yes');
не выводит Yes, хотя должен бы....

Hekumok 15.06.2012 15:09

вообще-то не "undefuned", a "undefined"

bes 15.06.2012 15:49

Заключите undefined в кавычки и всё будет нормально.

Джэксон 15.06.2012 17:13

typeof разве не тип возвращает? плюс разве не так надо писать typeof(а)?

B@rmaley.e><e 15.06.2012 17:42

Джэксон, нет и нет, не обязательно.

bes 15.06.2012 17:50

Цитата:

Сообщение от Джэксон
typeof разве не тип возвращает? плюс разве не так надо писать typeof(а)?

http://javascript.ru/typeof
Цитата:

Вызов typeof возвращает строку, содержащую информацию о типе операнда.
Со строкой и нужно сравнивать.

devote 15.06.2012 21:00

var a;
if (a===undefined) alert('Yes');

bes 15.06.2012 21:31

Как можно сравнить сроку с не строкой, не приведя её к строке (конечно, если этого не сделает интерпретатор), для значений типа undefined, true и т.п. интерпретатор этого не делает, а typeof возвращает строку.
var a;
alert(typeof(typeof a))
alert (typeof undefined)

bes 15.06.2012 23:29

Цитата:

Сообщение от Maxmaxmахimus
какой интерпритатор? чего не делает? че ты вообще несешь седня? иди учебник читай
я серьезно http://learn.javascript.ru

ну-ну

bes 16.06.2012 10:15

Цитата:

Сообщение от Maxmaxmахimus
какой интерпритатор? чего не делает? че ты вообще несешь седня? иди учебник читай
я серьезно http://learn.javascript.ru

Цитата:

Сообщение от Maxmaxmахimus
с приведением типов ==
без приведения типов ===

и погугли значение слова интерпритатор

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

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

В-третьих, то что я написал подходит под спецификацию (если надо, могу уточнить: typeof a == undefined вернёт false по шагу 10 пункта 11.9.3 спецификации, а typeof a == 'undefined' вернёт true по шагу 1.d этого же пункта, для значения true примерно та же ситуация).

В-четвёртых, про то, что интерпретатор это делает (реализует алгоритмы, в том числе, приведения типов), тоже не пойму, что за слова (аргументировать-то их лень наверное, проще в учебник отослать), думаю тут я также не ошибся, ну а если ошибся, то можно и поправить, корректно только, да?.
http://ru.wikipedia.org/wiki/%C8%ED%...F2%E0%F2%EE%F0
Цитата:

Интерпрета́тор — программа (разновидность транслятора) или аппаратное средство, выполняющее интерпретацию.
Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).
анализ, обработка, выполнение - всё к интерпретатору относится, не?

melky 16.06.2012 13:27

Цитата:

Сообщение от Maxmaxmахimus
потом эти данные сравниваются http://javascript.ru/ecma/part11#a-11.9.3

Cударь, пора бы уже кидать ссылки на es5
http://es5.javascript.ru/x11.html#x11.9.3

melky 16.06.2012 13:31

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 181814)
покажи мне отличия

никаких, только текст раскрашен, и свежее

bes 16.06.2012 14:05

Цитата:

Сообщение от Maxmaxmахimus
суть не в слове а в его значении, если ты понял значение то цель достигнута. Или ты поддался школьной пропаганде что "писать нужно правильно и ТОЧКА" ?

Не спорю, но код-то правильно пишешь, в чём проблема и другие слова нормально писать, или думаешь, твои слова другие люди должны подвергать дополнительному разбору.
Цитата:

Сообщение от Maxmaxmахimus
Интерпритатор javascript интерпритирует код программы в промежуточный байткод и исполняет его в javascript песочнице

Для начала он наверное подвергает его анализу и обработке.
Цитата:

Сообщение от Maxmaxmахimus
ты сказал что интерпритатор решает как сравнивать, это бред, интерпритатор ТОЛЬКО превращает ТЕКСТ прогарммы в КОТ понятный машине! То, каким образом сравнивать данные, решает программист, а не интерпритатор.

интерпретатор действует по заложенным в нём алгоритмам, что это за алгоритмы описано в спецификации
Цитата:

Сообщение от Maxmaxmахimus
вначале происходит действие typeof a и получается приметивное значение строки, потом к нему применяется getValue('строка с типом').
потом происходит getValue(undefined)
потом эти данные сравниваются http://javascript.ru/ecma/part11#a-11.9.3

ссылка правильная, и у melky тоже, там и смотрел, про собственно само сравнение и писал
Цитата:

Сообщение от Maxmaxmахimus
ты сначала подучи js а потом уже суйся в подобные споры, а то так и будешь позориться на весь форум.

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

Джэксон 17.06.2012 22:05

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 181754)
вначале выполняются скобки и получается строка typeof a
а потом выполняется typeof

спасибо ;) я просто для себя спросил:)


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