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
Цитата:

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


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