Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / default значение в function JS как в PHP / 16 сообщений из 16, страница 1 из 1
19.07.2008, 16:50
    #35440824
ZeroHold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Доброе уважаемые

Как передать значение по умолчанию в функцию javascript как в PHP это делается

то есть в PHP можно так
function name($_name='def',$_count=0)
после чего можно вызывать в php просто name() и все значения подставляются по умолчанию;

а вот что то подобное можно сделать в JavaScript. В данный момент у меня не получается, и что то подобное в интернете найти не могу.
Если на прямую никак, то можно как то с эмулировать это дело?
...
Рейтинг: 0 / 0
19.07.2008, 17:35
    #35440836
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script>
function test(a)
{
	var a = a ||  3 ;
	alert(a);
};
test( 5 );
test();
</script>
...
Рейтинг: 0 / 0
19.07.2008, 18:38
    #35440869
ZeroHold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Интересное решение :) спасибо. уже использую
...
Рейтинг: 0 / 0
19.07.2008, 20:20
    #35440928
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
А если a будет равно 0? Правильнее делать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<script type="text/javascript">
function test(a)
{
	if (a == undefined)
	  a =  3 ;
	alert(a);
};
  test( 5 );
  test( 0 );
  test();
</script>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
19.07.2008, 20:37
    #35440945
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
На досуге сравните
Код: plaintext
1.
2.
3.
4.
5.
<script>
alert(null == undefined)
alert( 0  === undefined)
alert(typeof  0  == undefined)
</script>
...
Рейтинг: 0 / 0
19.07.2008, 20:39
    #35440946
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Вернее так
Код: plaintext
1.
2.
3.
4.
5.
<script>
alert(null == undefined)
alert(null === undefined)
alert(typeof null == undefined)
</script>
[
...
Рейтинг: 0 / 0
20.07.2008, 21:24
    #35441395
ZeroHold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
illion
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script>
function test(a)
{
	var a = a ||  3 ;
	alert(a);
};
test( 5 );
test();
</script>

немного откорректирую
вместо || ставим && так по корректнее работает.
...
Рейтинг: 0 / 0
20.07.2008, 21:45
    #35441405
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
В чем состоит смысл "по корректнее" (которое вобще говоря, слитно пишется) ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.07.2008, 21:49
    #35441408
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
ZeroHold illion
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script>
function test(a)
{
	var a = a ||  3 ;
	alert(a);
};
test( 5 );
test();
</script>

немного откорректирую
вместо || ставим && так по корректнее работает.
Вы ошибаетесь. && не работает.
illion Только заметил. var не нужно использовать. Формальные параметры уже находсятся в локальной области видимости. одноименный с формальным параметром var по идее должен сделать недоступным знначение параметра.
...
Рейтинг: 0 / 0
21.07.2008, 00:23
    #35441474
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
apapacy
illion Только заметил. var не нужно использовать.
да знаю, знаю и про var и про сравнение с undefined, но этот ответ случился без подключения мозга к процессу, и результат соответствующий вышел. Делаю для себя очередные выводы о внимательности.

2 ZeroHold : && здесь так же некорректен будет. Верный вариант - с undefined:
Код: plaintext
if (a == undefined) a= 3 ;
...
Рейтинг: 0 / 0
21.07.2008, 00:35
    #35441482
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
illion
Верный вариант - с undefined:
Код: plaintext
if (a == undefined) a= 3 ;

либо, если a - не просто переменная, но может и объектом быть, то тогда использовать typeof или оператор идентичности ===.
...
Рейтинг: 0 / 0
21.07.2008, 01:08
    #35441491
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
apapacyНа досуге сравните
Код: plaintext
1.
2.
3.
4.
5.
<script>
alert(null == undefined)
alert(null === undefined)
alert(typeof null == undefined)
</script>
[
добавим теории? (может и не надо оно здесь, но заняться мне сейчас больше нечем :-) )

null имеет тип "объект" и значит "отсутствие объекта". Т.е. если переменная равна null, то это значит, что в ней не содержится ни одного допустимого типа объекта (строки, числа, массива, ...).
undefined получается при обращении к переменной, которая была объявлена, но значение ей не присваивалось, либо к несуществующему свойству объекта.
null и undefined оба обозначают отсутствие значения, поэтому null == undefined вернет true, хотя теоретически эти значения вроде бы не эквивалентны. Особенности их сравнения заложены в самом операторе ==:
E262-3
11.9.3 The Abstract Equality Comparison Algorithm
The comparison x == y, where x and y are values, produces true or false. Such a comparison is performed as follows:
...
14. If x is null and y is undefined, return true

Оператор идентичности более строг в определении совпадения, и null === undefined вернет false уже просто потому, что их типы не идентичны:
E262-311.9.6 The Strict Equality Comparison Algorithm
The comparison x === y, where x and y are values, produces true or false. Such a comparison is performed as follows:
1. If Type(x) is different from Type(y), return false.


typeof null == undefined в данном случае делает примерно то же самое, что и === - производит сравнение типа объекта. Сделаем поправку на то, функция typeof возвращает строковое значение, и получим typeof null == 'undefined' ==> false.
...
Рейтинг: 0 / 0
21.07.2008, 01:59
    #35441505
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
null !== undefined => true
null == undefined => true
...
Рейтинг: 0 / 0
21.07.2008, 02:01
    #35441506
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Потому что
typeof undefined == "undefined"
typeof null == "object"
...
Рейтинг: 0 / 0
21.07.2008, 02:04
    #35441507
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Сорри ответил не совсем на тот вопрос. Вы же сами цитировали

автор
14. If x is null and y is undefined, return true

То есть null == undefined ==> true
...
Рейтинг: 0 / 0
21.07.2008, 02:13
    #35441511
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
default значение в function JS как в PHP
Опять ответил не в дугу сорри. Короче отвечу так. Срвсем сторого было бы проверять так:

Код: plaintext
1.
2.
3.
4.
function(a){
  if (a === undefined)
    a =  3 ;
}
В этом случае a==3 в двух случаях f() и f(undefined).
В случае b=null и f(b) a==null.
Оператор typeof я приводил только для тестирования сравнения а не для использования в функции.

Но на самом деле я бы использовал Ваш вариант для 99% случаев.
Код: plaintext
1.
2.
3.
function(a){
    a = a ||  3 ;
}

Мой ответ относился к _Vasilisk_ так как он предложил проверять более строго, ну а я предложил еще более строго.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / default значение в function JS как в PHP / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]