Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2012, 14:41
Новичок на форуме
Отправить личное сообщение для udav Посмотреть профиль Найти все сообщения от udav
 
Регистрация: 26.02.2012
Сообщений: 5

непонятно про приведение null к boolean
Всем привет.
В учебнике по JS на этом сайте я прочитал, что при приведении null к boolean, его значением будет false.
Однако, когда у меня есть переменная со значением null, то все происходит наоборот.
if (null) {
	window.alert("null is false"); // этот код не отработает
}
var name = null;
if (name) {
	window.alert("name is true"); // этот код всегда вызывается
}

Можете мне объяснить, почему так происходит?
Ответить с цитированием
  #2 (permalink)  
Старый 26.02.2012, 15:52
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

nasqad,
я скопировал его код и запустил, у меня сработало второе условие, проверь свой лисобраузер.

Последний раз редактировалось Mахmaxmaximus, 26.02.2012 в 16:29.
Ответить с цитированием
  #3 (permalink)  
Старый 26.02.2012, 16:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Вторая часть кода сработает в Safari и Google Chrome
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2012, 16:07
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

так только из-за некоторых имен переменных, напримерн свойство name есть у window. В хроме при установке ему значения оно переводит значение в строку.
var nil = null;
var name = nil;
alert( typeof nil + "\n" + typeof name );
Ответить с цитированием
  #5 (permalink)  
Старый 26.02.2012, 16:28
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

млять точно вспомнил же, я в свое времяо со статусом так ибался.

но почему так? почему они зарезервиловали переменную name а меня не предупредили? спецификация запрещяет использование name в глобальном контексте? - нет! какого хрена они такое вытваряют?? и как я должен был узнать? если делают извращения, то пусть будут добры делать их обратносовместными!
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2012, 19:03
Новичок на форуме
Отправить личное сообщение для udav Посмотреть профиль Найти все сообщения от udav
 
Регистрация: 26.02.2012
Сообщений: 5

Действительно, все дело в имени переменной.
Этот скрипт работает как я и ожидаю.
var xxx = null;
	if (xxx) {
		window.alert("name is true"); // этот код не вызывается
	}
Ответить с цитированием
  #7 (permalink)  
Старый 26.02.2012, 21:52
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

http://javascript.ru/window.name
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 26.02.2012, 23:17
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

Aetae,
у лисы имя окна можно приравнять в null?
Ответить с цитированием
  #9 (permalink)  
Старый 27.02.2012, 05:50
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Да. ФФ просто не заморачивается: если ты так сделал, знач тебе так надо, а думать за кодера и приводить к значение к строке фф не будет. И правильно, имхо.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Растянуть элемент по содержимому AnToxa Элементы интерфейса 11 09.04.2012 22:13
вопрос про null Arkinsstoun jQuery 5 04.01.2012 23:20
Переопределить функции .childElements rikitikitavi Events/DOM/Window 2 18.03.2011 21:44
Чем занимаются JS-программеры. JSTalker Оффтопик 69 02.02.2011 10:18
Удалить ряд символов перед или после курсора до определенного сивола brd Javascript под браузер 3 30.10.2009 08:20