Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 22. 2. 2011, 13:37:42 · Upravil/a: unlucky
ahoj, mam funkci se tremi parametry pri cemz treti je nepovinny. Chci, kdyby byla zadano hodnota tak by udelalo tohle jinak tamto.
zkousel jsem function neco (a,b,c='nic')... toto mi nejak nefunguje :P edit: no nic, tak jsem nakonec pouzil podminku ==null :) |
||
Darker Profil |
#2 · Zasláno: 22. 2. 2011, 14:11:30 · Upravil/a: Darker
To co jsi zkoušel funguje v PHP.
V JS to musíš udělat takto: function funkce(a,b){ if(typeof a =="undefined")var a ="vychoziA"; if(typeof a =="undefined")var a ="vychoziB"; return a+b; } Nejsem si jistý tím var za if, ale asi by tam být mělo. unlucky: „==null“ Proměnná může být definovaná jako null. |
||
unlucky Profil |
#3 · Zasláno: 22. 2. 2011, 14:19:44 · Upravil/a: unlucky
Darker:
diky za reakci, vyresil jsem to takhle Predtim jsem tam daval pouze != nevim jestli tenhle nebo tvuj je lepsi function neco(a,b,c){ if (c!==null){ fsdfd } } |
||
Darker Profil |
#4 · Zasláno: 22. 2. 2011, 14:31:02
Neexistuje důvod dávat dvě rovnítka. Moje řešení ber jako doporučené. Možná se ještě někdo vyjádří jinak.
|
||
_es Profil |
#5 · Zasláno: 22. 2. 2011, 14:51:39
unlucky:
Ak nie je argument zadaný, tak má hodnotu undefined .
if(c !== undefined) {argument c bol predaný s inou hodnotou ako undefined} |
||
Darker Profil |
#6 · Zasláno: 22. 2. 2011, 15:06:15
_es:
To by nemělo fungovat. Ve firefoxu to tedy rozhodně fungovat nebude. Skus napsat alert(cokoliv_co_neni_definovane==undefined) Nic se nestane a vypíše se chyba cokoliv_co_neni_definovane is not defined Zatímco alert(typeof cokoliv_co_neni_definovane=="undefined") Alert vykřikne "true". |
||
Chamurappi Profil |
#7 · Zasláno: 22. 2. 2011, 15:14:08
Reaguji na Darkera:
Řeč byla o argumentu funkce, nikoliv o nedeklarované proměnné. |
||
_es Profil |
#8 · Zasláno: 22. 2. 2011, 15:49:03
Darker:
> Skus napsat > alert(cokoliv_co_neni_definovane==undefined) Ale argument funkcie, ktorý nebol zadaný, definovaný je a má hodnotu undefined .
unlucky: Ďalšia možnosť: if(arguments.length > 2) {boli zadané viac ako dva argumenty} |
||
ShiraNai7 Profil |
#9 · Zasláno: 22. 2. 2011, 15:54:07
Darker:
Mi to teda vyhodí dialog s textem "true". |
||
_es Profil |
#10 · Zasláno: 22. 2. 2011, 16:09:40
ShiraNai7:
Viď [#7] Chamurappi. |
||
Suta Profil |
#11 · Zasláno: 22. 2. 2011, 17:05:24 · Upravil/a: Suta
Darker:
„Nejsem si jistý tím var za if, ale asi by tam být mělo.“ Definováním pojmenovaných argumentů dojde po zavolání funkce automaticky k vytvoření "lokální" proměnné, takže provádíš re-deklaraci již jednou definované proměnné. |
||
Časová prodleva: 13 let
|
0