واضح آرشیو وب فارسی:سایت ریسک: t=24578">سوال : در مورد متغير NaN poorkooshki 08 آذر 1383, 15:48سلام ***** به نمونه زير توجه كنيد . var my_var = 114-"MMP"; trace(my_var); //مي شه NaN خروجي ما // شرط كار نمي كنه if (my_var == NaN) { trace("it is NaN"); } حالا سوالم اينه كه چرا شرط كار نمي كنه ؟ آيا كدم رو اشتباه نوشتم ؟ موفق باشيد naeim_crack 08 آذر 1383, 16:11سلام این کدی که شما نوشتی کا ملا اشتباه است چون الان شرط شما مقدار undefined رو میره با مقدار شرط برسی می کنه چون trace یه مقدار رو تو خروجی میده و برای متغییر نمی تونه بفرسته دلیل اینکه کد بالا کا ر نمیکنه همینه ولی خود فلش برای تست کردن NaN یه دستور به اسم isNaN داره که با جواب True و False می تونی بفهمی متغیر شما NaN شده یا نه حالا یگه زیادی توضیح نمیدم کد رو به شکل زیر عوض کن درست میشه [ var my_var = 114-"hh"; if (isNaN(my_var) == true) { trace("it is NaN"); } موفق باشید poorkooshki 09 آذر 1383, 07:45سلام ***** آقا نعيم اگه به گفته شما ( شرط مقدار undefined رو میره با مقدار شرط برسی می کنه ) پس بايد كد زير مقدار true رو برگردونه و شرط درست باشه ؛ ولي اينطور نيست . var myvar = 114-"mmp"; if (myvar == undefined) { trace("شرط برقرار شده"); } پس متغير ما undefined نيست بلكه typeof آن از نوع number شناخته مي شه : var myvar = 114-"mmp"; if (typeof myvar == "number") { trace("typeof is number"); } آقا نعيم در مورد اين گفته ( چون trace یه مقدار رو تو خروجی میده و برای متغییر نمی تونه بفرسته ) ميشه بيشتر توضيح بدي چون من اصلا متوجه نشدم . موفق باشيد naeim_crack 09 آذر 1383, 09:26شما این دستور رو امتحان کن خودت میفهمی var myvar=114-"mmp"; x=trace(myvar); trace(x); اول می فهمی که مقدار undefined هستش دوم دستور trace خوروجی خودش رو به ljyddv نمیده سوم ,وقتی فلش برای این کار دستور مخصوصو داره مگه مجبوری دنبال یه دستور که کار کردن باهاش سخته می گردی البته بدون این دستور هم میشه ولی باید روش کارد که یه جوری که متغییر رو از trace بگیری poorkooshki 09 آذر 1383, 14:08سلام ***** اولا مقدار undefined نيست ؛ اين كدي هم كه شما در بالا نوشتيد دليلي بر اثبات حرفتون نمي شه چون هر مقدار صحيحي هم كه بجاي متغير myvar قرار بديم نتيجه همون undefined مي شه . ( در اصل خط دوم كدتون رو اشتباه نوشتيد ) var myvar = 114; x = trace(myvar); trace(x); دوما در مورد اين گفتتون هم كه ( دستور trace خروجی خودش رو به متغير نمیده ) بايد بگم كه دستور trace اصلا خروجي نداره كه بخواد اونو به متغيري هم نسبت بده اين دستور فقط براي اينه كه عبارات داخل دو پرانتز رو ارزيابي كنه و به OutPut بفرسته . سوما من فقط مي خواستم بدونم چرا وقتي خروجي يه متغيري NaN مي شه و اونو در دستور شرطيif مي زاريم و از حالت برابري ( == ) استفاده مي كنيم كار نمي كنه وگرنه خودم از قبل تابع isNaN رو مي دونستم . var myvar = NaN; if (myvar == NaN) { trace("اين شرط انجام نمي شه"); } if (myvar != NaN) { trace("اين شرط انجام مي شه"); } بهر حال موفق باشيد naeim_crack 09 آذر 1383, 14:18اولا خروجی همون undifined هستش منم گفتم که دستور trace خروجی به متغییر نمی تونه بفرسته وقتس هم شما trace رو در سرط می زارید مثل همینه که همون متغییر که مساوی trace قرار دادیم رو در شرط بزاردی و مقدار همون undifined هستش در ضمت اگه شما دستور isNaN رو بلد بودید هیچ وقت شرط بالا رو برای انجام کارتون به اون شکل نمی نوشتید اگه بلد بودی پس چرا این تاپیک رو زدی شما در کل این تاپیک 2 تا سوال کردید 1- به چه شکل مقدار trace رو به متغییر بیدم 2- به چه شکل trace رو در شرط بزارم هر دوتا هم بلد نبودی حالا که جوابتو گرفتی میگی بلدم بابا وارد --------- بلد ------------ اخر فلش ::d amir_s 09 آذر 1383, 19:32آقا مشكلت حل شد ديگه؟؟؟ naeim_crack 09 آذر 1383, 23:00اقا من فکر نکنکم حرف بدی زدم باشم که به این آقا بر خورده خوب یه چیزی رو اشتباه بلد بودی سوال پرسیدی منم هر چی بلد بودم جواب دادم poorkooshki 10 آذر 1383, 08:45سلام ***** آقا نعيم ( دوست عزيز ) ؛ قرار نيست اينجا به كسي بر بخوره ما فقط داريم با هم بحث مي كنيم . نگاه كنيد شما مي گيد متغير myvar خروجيش undefined ميشه ؛ من مي گم ايطوري نيست پس يه نمونه كد مي نويسم اگه قبول نداشتيد شما نمونه كدي بنويسيد كه دليل بر حرفتون باشه . var my_var; trace(typeof my_var); var myvar = 114-"MMP"; trace(typeof myvar); من در كد بالا متغير my_var رو تعريف نكردم پس در OutPut اون رو تعريف نشده يا undefined شناخت ولي به متغير myvar يه مقداري ( البته براي مقادير رشته اي تنها بايد از عملگر + استفاده كرد - ولي اين يه مثال است) اختصاص داده شده كه اونو از undefined بودن خارج مي كنه و خروجي رو در عملگر typeof به صورت number و در trace كردن به صورت NaN نشون مي ده. يه چيز ديگه شما نوشته بوديد كه ( وقتي هم شما trace رو در شرط می زارید مثل همینه که همون متغییر که مساوی trace قرار دادیم رو در شرط بزاردی و مقدار همون undifined هستش ) ؛ بايد بگم اشتباه گفتيد . يه مثال براي اثباتش بزن . آقا نعيم من اصلا به عدد بودن يا عدد نبودن شرطم كاري نداشتم كه از تابع isNaN استفاده كنم من فقط با خود درست بودن شرط كار داشتم كه چرا مقدار true رو برنمي گردونه . ( اشتباه شما هم در همين جا بوده كه فكر مي كردين من اين تابع رو بلد نبودم ) اينم بگم كه در تاپيكهاي ديگه چيزهاي زيادي از ارسالهاي شما ياد گرفتم . موفق باشي naeim_crack 10 آذر 1383, 09:20سلام عزیز دل برادر من کی گفتم مقدار myvar undefined هستش کد که من اون بالا گذاشتم ببین من گفتم این کد undefined هستش myvar=114-"mmc"; x=trace(myvar); trace(x); من اینو گفتم undefined هستش در جواب سوال دوم myvar=114-"mmc"; if(trace(myvar) == NaN) { // بازم این شرط اشباه هستش چون undefined می ده { دستور شرط که مقدار true و flase رو بر نمی گرونه یا حق poorkooshki 10 آذر 1383, 10:14سلام ***** آقا نعيم ؛ چرا شما دستور trace رو كه اصلا خروجي نداره به يه متغير و يا در شرط استفاده مي كنيد . اينجوري كه شما استفاده مي كنيد جوابتون ربطي به عبارتهاي داخل دستور trace نداره و هميشه undefined ميشه . myvar = 114-"mmc"; if (trace(myvar) == NaN) { // خواهد بود undefined اين شرط هميشه // نداره trace و ربطي به مقادير داخل دستور } موفق باشيد webkhan 10 آذر 1383, 13:13همانطور كه نعيم عزيز گفت براي تعيين اينكه يك متغيير NaN هست يا خير نمي توان متغيير را برابر با مقدار NaN قرار داد. ماكرومديا گفته از تابع isNaN استفاده كنين. در ضمن : var myvar= 114-"lok" از لحاظ Syntax اشتباه است. يك نامبر نمي شه از يه استرينك كم بشه. در فلش 7 روش درست نگارش اينه كه وقتي از var استفاده شد و متغيير معرفي گرديد نوع آن هم بايد مشخص شود. var myvar:Numbar=112 هميشه براي اطمينان خاطر از اينكه متغيير مورد نظر كه از نوع نامبر هست با يك استرينگ يا نوع ديگر وارد محاسبات رياضي شدند يا خير از تابع isNaN استفاده كنين. اگه مقدار false رو برگرداند يعني محاسبات شما درست است. naeim_crack 10 آذر 1383, 15:43ایوا قربون آدم چیز فهم poorkooshki 11 آذر 1383, 06:17سلام ***** آقا نعيم از متغير NaN كه بگذريم شما تو اين تاپيك يه چيز ديگه اي هم مطرح كرديد كه براي من هنوز حل نشده و اون اينه كه گفته بوديد : 1- به چه شکل مقدار trace رو به متغییر بديم 2- به چه شکل trace رو در شرط بزارم يكم در مورد اين گفتتون توضيح بديد . ممنون
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 803]