Несколько месяцев назад, читая «Объектно-ориентированный JavaScript» Стояна Стефанова, я узнал следующее. Надеюсь, вам понравится читать. :)
NaN — число, не равное никакому числу. Даже не себе. Ага! Поэтому следующий оператор всегда будет возвращать false
$ NaN === NaN false
== проверяет равенство. === также проверяет тип операндов
$ true == "1" true $ true === "1" false
Переменная, которая объявлена, но еще не определена, будет иметь значение undefined
$ var blahBlah; $ console.log(blahBlah); undefined $ var blahBlahHmm = ""; $ console.log(blahBlahHmm); ""
В JavaScript есть два очень интересных числа: Бесконечность и -Бесконечность
$ typeof Infinity “number” $ typeof -Infinity “number”
Если из бесконечности вычесть бесконечность, вы не получите ноль. Расскажите мне об этом!
$ Infinity - Infinity NaN $ - Infinity + Infinity NaN
Бесконечность * 0 не равно 0. Хм!
$ Infinity * 0 NaN
Используя приведенный выше факт, Infinity / 0 должен быть NaN. Нет… Вместо этого это Бесконечность.
$ Infinity / 0 Infinity
null — это единственный примитивный тип данных, который также иногда считается объектом
$ typeof null "object"
Восьмеричное число представлено 0 в начале числа
$ var num = 0644; $ console.log(num); 420
Шестнадцатеричное число представлено ox в начале числа
$ var num = 0x1A4; $ console.log(num); 420
Экспоненты могут быть определены с помощью символа e
$ var exponent = 42e+3; $ console.log(num); 42000
Самое большое число, которое может обработать JavaScript:
1.7976931348623157e+308
Так что же будет 1e+309, спросите вы!
$ console.log(1e+309) Infinity
Наименьшее число, которое может обработать JavaScript:
5e-324
Хорошо. Я остановлюсь, иначе ваша все возрастающая любовь к JavaScript может свести вас с ума. :D