Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2008, 18:39
Интересующийся
Отправить личное сообщение для Autosof Посмотреть профиль Найти все сообщения от Autosof
 
Регистрация: 23.08.2008
Сообщений: 20

Непонятное поведение javascript
Вопрос к знатокам.

Не могу понять, что крамольного обнаруживает javascript в определении следующей функции:

date_to_string = function (value) {

    return
    '0'.concat(value.getDate()).slice(-2).
    concat('.').
    concat('0'.concat(value.getDay() + 1).slice(-2)).
    concat('.').
    concat(value.getFullYear()).
    concat(' ').
    concat('0'.concat(value.getHours()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getMinutes()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getSeconds()).slice(-2))
}

alert(date_to_string(new Date()))


Обращаясь к ней получаем результат – "undefined"

И абсолютно та же функция, но с использованием промежуточной переменной:

date_to_string = function (value) {

    var str =
    '0'.concat(value.getDate()).slice(-2).
    concat('.').
    concat('0'.concat(value.getDay() + 1).slice(-2)).
    concat('.').
    concat(value.getFullYear()).
    concat(' ').
    concat('0'.concat(value.getHours()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getMinutes()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getSeconds()).slice(-2))

    return str
}

alert(date_to_string(new Date()))


Результат обращения к ней – скажем "04.05.2008 17:31:00".
Тоесть то, что и ожидалось от её работы.

Хотелось бы знать – что не нравиться javascript в первом варианте?!
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2008, 18:46
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

всё прhавильно (представь, что ты парсер):
return ;
'0'.concat(value.getDate()).slice(-2).
concat('.').
concat('0'.concat(value.getDay() + 1).slice(-2)).
concat('.').
concat(value.getFullYear()).
concat(' ').
concat('0'.concat(value.getHours()).slice(-2)).
concat(':').
concat('0'.concat(value.getMinutes()).slice(-2)).
concat(':').
concat('0'.concat(value.getSeconds()).slice(-2));

Нельзя после return перенос на другую строку ставить...
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2008, 18:54
Интересующийся
Отправить личное сообщение для Autosof Посмотреть профиль Найти все сообщения от Autosof
 
Регистрация: 23.08.2008
Сообщений: 20

Да.....

Нужно срочно поменять название темы с "непонятное поведение javascript" на "жесткое поведение javascript"...

Странно как это парсер "упустил" возможность в строке
var str =

присвоить значение "undefined" этой переменной...

Боюсь даже думать чего ещё можно от него ожидать :rolleyes:
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2008, 18:55
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

потому что он так поступает только с return.
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2008, 19:00
Интересующийся
Отправить личное сообщение для Autosof Посмотреть профиль Найти все сообщения от Autosof
 
Регистрация: 23.08.2008
Сообщений: 20

Ну вообщем тему можно закрывать. Всё понятно. Спасибо.

Так работает:
date_to_string = function (value) {

    return '0'.concat(value.getDate()).slice(-2).
    concat('.').
    concat('0'.concat(value.getDay() + 1).slice(-2)).
    concat('.').
    concat(value.getFullYear()).
    concat(' ').
    concat('0'.concat(value.getHours()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getMinutes()).slice(-2)).
    concat(':').
    concat('0'.concat(value.getSeconds()).slice(-2))
}


Конец рабочего дня дает о себе знать...

Последний раз редактировалось Autosof, 04.09.2008 в 19:08.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лучшая книга по JavaScript Systemnik Оффтопик 27 26.08.2012 16:54
Современная книга по JavaScript twolf Оффтопик 18 21.02.2009 01:20
Приглашаем специалиста по JavaScript. Мск, от 75 000 руб. arturus Работа 30 14.01.2009 02:30
Обращение к именам, полученным через Javascript baal1988 Events/DOM/Window 1 31.08.2008 15:08
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43