JavaScript распознает следующие типы велечин:
Это относительно малый набор типов значений, или типов данных, которые позволяют вам выполнять функции в ваших приложениях. Не существует никакого явного различия между целыми числами и реально-оцененными числа. И при этом не существует явного типа данных date в Navigator. Однако, объект date и связанные встроенные функции позволяют вам обрабатывать данные.
Объекты и функции - фундаментальные элементы в языке. Вы можете думать об объектах как об именнованных контейнерах для значений, и о функциях как о процедурах, которые ваше приложение может выполнять.
Тип переменной зависит от того, какой тип информации в ней хранится. JavaScript не является жестко типизированным языком. Это означает, что вы не должны точно определять тип данных переменной, в момент ее создания. Тип переменной присваивается переменной автоматически в течение выполнения скрипта. Так, например, вы можете определить переменную следующим образом:
var answer = 42
А позже, вы можете присвоить той же переменной, например следующее значение:
answer = "Thanks for all the fish..."
Или рассмотрим следующее выражения:
В первой операции сложения первый операнд является строкой. JavaScript предпологает, что производится операция с двумя строками. Когда JavaScript обнаруживает в качестве второго операнда целое число, он в соответствии со своими представлениями преобразует переменную в строку.
Поскольку JavaScript свободно типизированный язык, то это не вызовет ошибки.
Так как JavaScript не поддерживает никаких методов и свойств для определения типа текущего значения переменной, очень важно внимательноотслеживать типы переменных во избежание неожиданных результатов.
Вообще, в выражениях, включающие числовые и строковые значения, JavaScript преобразовывает числовые значения в строковые. Например, рассмотрим следующие утверждение:
x = "The answer is " + 42
y = 42 + " is the answer."
Первое утверждение будет строка "The answer is - 42 ". Второе утверждение возвращает строку " 42 - The answer is".
JavaScript предоставляет несколько специальных функций для управления строковыми и числовыми значениями:
Вы используете переменные, чтобы хранить значения в вашем приложении. Вы даете этим переменным имена, по которым вы ссылаетесь на них, и существуют некоторые правила, которым имена должны соответствовать.
Идентификатор JavaScript или имя должны начаться с символа или символом подчеркивания ("_"); последовательность символов также могут быть цифры (0-9). Символы включают знаки с "A" до "Z" (верхнего регистра) и знаки с "a" до "z" (нижний регистр). JavaScript учитывает регистр.
Некоторые примеры допустимых имен:
Number_hits
temp99
_name
Область действия переменных - то, где вы можете использовать их в скрипте. В JavaScript, существует две области действия, которые переменные могут иметь:
Чтобы объявить локальную переменную внутри функция, используйте ключевое слово var, например:
var total = 0
Чтобы объявить глобальную переменную, объявите переменную назначения, которая просто присваивает значение переменной (или в функции или вне функции), например:
total = 0
Лучше всего объявлять глобальные переменные в начале вашего скрипта, так, чтобы функции наследовали переменную и ее значение.
Литералы - способ, которым вы представляете значения в JavaScript. Установленные значения, которые вы буквально (literally) представляете в вашем источнике, и - не переменные. Примеры литералов включают:
42
3.14159
"Быть или не быть"
Целыми называют числа вида 1, 164, 102390. Они могут быть выражены в десятичном (по основанию 10), шестнадцатеричном (по основанию 16), или восьмеричном (по основанию 8) представлении. Десятичный литерал целого числа состоит из последовательности цифр без ввода 0 (ноля).
Целое число может быть выражено в восьмеричном или шестнадцатеричном скорее чем в десятиричное. Шестнацетеричные числа включают цифры 0-9 и буквы a-f и A-F, в JavaScript они записываются с комбинацией символов 0x или 0X (ноль-x) перед числом. Восмиричные числа включают только цифры 0-7 и в JavaScript записываются с ведущего нуля.
Например, десятичное число 23 представляется в шестнадцатеричном виде как 0x17 и в восмеричном как 027
Литералы с плавающей точкой представляют собой дробные части целых чисел и должны включать в себя по крайней мере одну цифру и десятичную точку либо символ экспоненты ("е" или "Е"). В следующих примерах приведены различные варианты представления одного и того же числа:
Логические значения имеют только два значения, истинна (true) или ложь (false). В некоторых реализациях языка JavaScript 0 (false) и 1 (true) не могут быть использованы в качестве логических значений.
Строковые литералы - ноль или большее количество знаков, располеженные в двойных (") или одинарных (') кавычках. Строки должен быть разделены кавычками того же самого типа; то есть или обе одинарные кавычки или двойные кавычки. Использование обратной двойной черты "\" позволяет вставлять в строку специальные символы. Приведем примеры строковых литералов:
"Blah"
'Blah'
"1234"
"one line \n another line"
Вы можете использовать следующие специальные символы в строковых литаралах JavaScript:
Вы можете вставлять кавычки внутри строки, предшествуя им наклонной чертой влево. Это известно как выход кавычек. Например,
document.write("\"Вам следует принять ванну\",-
сказал доктор и наморщил нос.")
выводит
"Вам следует принять ванну", - сказал доктор и наморщил нос.
1. Электромагнитная волна (в религиозной терминологии релятивизма - "свет") имеет строго постоянную скорость 300 тыс.км/с, абсурдно не отсчитываемую ни от чего. Реально ЭМ-волны имеют разную скорость в веществе (например, ~200 тыс км/с в стекле и ~3 млн. км/с в поверхностных слоях металлов, разную скорость в эфире (см. статью "Температура эфира и красные смещения"), разную скорость для разных частот (см. статью "О скорости ЭМ-волн")
2. В релятивизме "свет" есть мифическое явление само по себе, а не физическая волна, являющаяся волнением определенной физической среды. Релятивистский "свет" - это волнение ничего в ничем. У него нет среды-носителя колебаний.
3. В релятивизме возможны манипуляции со временем (замедление), поэтому там нарушаются основополагающие для любой науки принцип причинности и принцип строгой логичности. В релятивизме при скорости света время останавливается (поэтому в нем абсурдно говорить о частоте фотона). В релятивизме возможны такие насилия над разумом, как утверждение о взаимном превышении возраста близнецов, движущихся с субсветовой скоростью, и прочие издевательства над логикой, присущие любой религии.
4. В гравитационном релятивизме (ОТО) вопреки наблюдаемым фактам утверждается об угловом отклонении ЭМ-волн в пустом пространстве под действием гравитации. Однако астрономам известно, что свет от затменных двойных звезд не подвержен такому отклонению, а те "подтверждающие теорию Эйнштейна факты", которые якобы наблюдались А. Эддингтоном в 1919 году в отношении Солнца, являются фальсификацией. Подробнее читайте в FAQ по эфирной физике.