Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2008, 16:27
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Непонятные фрагменты кода
Здравствуйте! Помогите новичку.
Мой вопрос заключается в следующем:
мне непонятно, что мы проверяем, когда перед аргументом функции ставим оператор "!". Я часто встречал этот прием во многих функциях, но меня интересует сама логика этого условия.
Function someFunction(arg) {
if(!arg) {...}
}
я знаю что оператор "!" это противоположное значение, но бывает и так:

var flash = false;
function some() {
if(!flash) {
тогда что, это условие будет выполняться всегда?}
}
Вы объясните на что идет проверка, и в каких случаях так нужно делать.
(P.S. Ув. администраторы, если можно я буду дополнять эту тему подобными вопросами, нежели буду "засорять" темами форум)
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2008, 16:37
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

В первом случае, если человек не укажет arg - arg будет undefined, соответственной !arg выдаст true и вы сможете, например, arg подставить скриптом.
Во втором случае аналогично.
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2008, 01:24
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

window.onload = function()  {
someHTMLElement.onclick = function() {
//...
//...здесь какой-то код
//...
timerID = setTimeout(/*подскажите как можно обратится к этой функции в даном случае, и вообще это возможно?*/,1)
}
}

Последний раз редактировалось Андрей Параничев, 10.08.2008 в 02:07.
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2008, 02:07
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

window.onload = function()  {
someHTMLElement.onclick = function() {
//...
//...здесь какой-то код
//...
timerID = setTimeout(arguments.callee,1)
}
}


И пожалуйста, пользуйся специальными bb-кодами для оформления листингов кода в теле сообщения.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2008, 19:16
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Андрей! Вы бы не могли рассказать об arguments.callee, или дать линк на инфу где можно об этом почитать. Я часто сталкиваюсь с этим свойством но не могу понять его назначение.
Очень благодарен за помощь.
Ответить с цитированием
  #6 (permalink)  
Старый 10.08.2008, 19:40
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Макс,
Почитайте вот эту статью, там написано про agruments и arguments.callee. В кратце - любая функция создаёт объект agruments, в котором хранятся все переданные функции параметры, и его свойство arguments.callee, в котором находится ссылка на саму себя. Это полезно для создания рекурсии в анонимной функции, например:
// бесконечный вызов функцией самой себя:
(function() { arguments.callee(); })();
Ответить с цитированием
  #7 (permalink)  
Старый 10.08.2008, 20:05
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

А вот столкнулся с такой вот проблемой. Никогда не встречал такого вот свойства:
document.namespaces
Что оно означает? Я знаю что namespaces - это пространство имен, а где и для чего его можно применить?
Ответить с цитированием
  #8 (permalink)  
Старый 13.08.2008, 12:12
Аватар для Макс
Аспирант
Отправить личное сообщение для Макс Посмотреть профиль Найти все сообщения от Макс
 
Регистрация: 13.06.2008
Сообщений: 48

Вот еще код, логика которого мне непонятна, точнее второе условие. !oneDecimal для чего там изменяется значение? по умолчанию было false, а теперь что true? Объясните: что оно в даном случае проверяет, зачем изменять эту переменную, для чего ее используют, и в каких случаях так нужно делать?
function isNumber(inputVal) {
oneDecimal = false;
inputStr = inputVal.toString();
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i);
if (i == 0 && oneChar == "-") {
continue;
}
if (oneChar == "." && !oneDecimal) {
oneDecimal = true;
continue;
}
// .....
Ответить с цитированием
  #9 (permalink)  
Старый 13.08.2008, 12:36
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

Вообще, как я понял, хотят понять, дробное это число или целое (выставляют переменную в true, если встретят точку). Только не пойму, почему не воспользоваться (typeof inputVal=='number')?
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2008, 12:47
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от ZoNT
почему не воспользоваться (typeof inputVal=='number')?
Ну там типа и строку можно передать.

Макс, меня, если честно, ваши вопросы в тупик ставят. Что может быть непонятного в конструкции вида "Если условие не выполняется, то что-то делаем"?
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расшифровка кода, генерируемого flash. ГостьФорума Общие вопросы Javascript 6 02.02.2011 01:26
Подсветка кода Kolyaj Сайт Javascript.ru 6 14.10.2008 17:28
Правильность кода baal1988 Общие вопросы Javascript 7 06.09.2008 08:58
Вставка кода valex88 AJAX и COMET 18 25.04.2008 21:11
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43