Решите задачку
При каких a и b верны следующие выражения.
a === b; // true 1/a !== 1/b; // true |
NAN
|
При NaN, первое равенство даст false, а нужно true.
|
a = b = {}; alert([a === b, 1/a !== 1/b]); |
Цитата:
alert(typeof $) |
Усложню: a и b не должны быть объектами, undefined или NaN.
|
a = 0; b = -0; alert( a === b ) alert( 1/a !== 1/b ) |
Да
|
старая шутка ... ещё со времён фотошопа CS3 (я про знак у нуля)
|
Или можно так.
a = 'a'; b = 'a'; alert( a === b ) alert( 1/a !== 1/b ) |
низя
alert( typeof 1/'a' ) |
melky, к чему это?
Цитата:
|
хм. я подумал, что они вообще тут недопустимы. ошибся :)
|
Цитата:
|
Цитата:
|
Цитата:
|
nerv_,
Это лишь слепая видимость, если вдуматься. |
это лёгкое обьяснение сущности JS для непонимающих JS.
ещё пример - в начальной школе на русском языке на ошибки, материал которых вы ещё не проходили, не обращают никакого внимания, а после того, как вы изучили мат. часть, за них жестоко карают. (когда учился в школе, всё время негодовал по этому поводу) так и в JS. почему у числа есть метод toString ? "потому что в JS всё - объекты". и лишь потом, как проичитаешь кучу всего и вникнешь \ почувствуешь озарение по поводу сущности (изюминки) JS, в эту фразу начинает закрадываться неуверенность по её правильности. |
Цитата:
прочитай отрывок из моей книги, там описаны типы данных в js __________________________________________________ _______ ООП Обьектно Ориентированное Программирование. Обьект в Javascript это набор свойств и их значений. Представленны они как таблица из двух стобликов. В первом пишутся названия свойств, во втором (на против свойств естественно) пишутся значения свойств. Получившаяся хрень называется обьект. То что в первом стоблике называется "Свойства", то что во втором называется "Значения", (ВНЕЗАПНО!!!). На против свойства лежит его значение, что как бы очевидно), напрмиер вот обьект: _____________________________________ "вид" : "кот" "размер зрачка" : 12 _____________________________________ Обьект выше состоит из двух свойств и значений к ним)) Названия свойств могут быть только строковыми. Если попытаемся засунуть в свойство число например 1, то оно автоматом законвертится в строку "1", если попробуем засувать че-то кроме чисел и строк, то выдается ошибка. В свойствах можно использовать прбелы да и вообще все что угодно)) это же обычная строка как ни как, например можно захерачить свойство "хуй пизда джигурда 775+ №пкав" А вот значения свойств могут быть уже черытех типов)
Например вот обьект человека: _____________________________________ "имя" : "Даша" "возраст" : 408 "дура" : true "встречается с" : referense(x100FAF0x0DDfd) - тут типа ссылка (на обьект таблицу пярня) _____________________________________ На ссылку посмотреть ни как нельзя, если мы попытаемся это сделать то движок отдаст нам не код ссылки, а ЗНАЧЕНИЕ в оперативе на которое ссылается ссылка, то есть таблицу которая там лежит) Но если бы можно было ссылку посмотреть, то выглядела бы она как: |
Цитата:
alert(undefined == null); // true alert(typeof null); // Object // Поскольку в js для работы с числами, строками и булевыми значениями используется объектная нотация, можно предположить, что они объекты. alert(typeof NaN); // Оператор typeof возвращает тип данных Number поэтому, NaN можно отнести к объектам типа Number. Это не аксиома. Просто попытался построить цепочку рассуждений соответствующим образом. melky, я не утверждаю, что знаю js :) Nekromancer, разделяю Вашу точку зрения. Так ли это, покажет время) Даша Соколова, спасибо, я уже читал Флэнагана. |
nerv_, ну если всё — объект, то вызовите какие-нибудь методы или установите свойство у null'а или undefined'а.
|
Цитата:
Если пишешь (4).toString(); то интерпретатор преобразовывает 4 в new Number(4); То есть, грубо говоря, нам упрощают задачу, автоматически перегенерировав код в (new Number(4)).toSring(); Не помню где и когда я это слыхал, так что, могу ошибаться. |
Цитата:
Цитата:
Цитата:
p.s.: я не говорю о том, что эта точка зрения [в js все объекты] является правильной. При этом допускаю построение цепочки рассуждений намекающей на это. |
nerv_,
http://javascript.ru/forum/events/24...tml#post146147 От этого поста и дальше читайте. Там этот вопрос раскрыт. |
Nekromancer, ой спасибо :thanks: Еще спасибы Kolyaj, B@rmaley.e><e, FINoM.
|
Часовой пояс GMT +3, время: 13:52. |