چرا parseInt('08') یا parseInt('09') صفر بر میگرده ولی parseInt('07') هفت؟
اگه از تابع parseInt تویه جاوا اسکریپت یا جیکوئری هاتون استفاده می کنین، که یه رشته رو به عدد تبدیل کنین، میبینین که تو بعضی مرورگرا درست جواب نمیده.
یعنی اعداد 01 تا 07 رو درست نشون میده ولی 08 و 09 رو درست نشون نمیده.
که البته درست هم هست، وقتی قبل عدد رشته ای، صفر میذاریم، به عنوان octal در نظر گرفته میشه، که تویه octal هم اعداد 08 یا 09 و بیشتر تعریف نشده و صفر نشون میده.
حالا برای این مسئله، دو تا راه حل داریم که تو تکه کد پایین میبینین.
// example parseInt('01'); //equals 1 parseInt('02'); //equals 2 parseInt('03'); //equals 3 parseInt('04'); //equals 4 parseInt('05'); //equals 5 parseInt('06'); //equals 6 parseInt('07'); //equals 7 parseInt('08'); //equals 0 parseInt('09'); //equals 0 // solution 1: parseInt('08',10); // equals 8 // solution 2: Number('08'); // equals 8
نویسنده : فاطمه حسین پور
شنبه 20 خرداد 1396
شنبه 20 خرداد 1396