هنوز چند بایت مونده که پیدا کنم...

چرا 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
+ 30 -

خوشحال میشیم نظرتُ بدونیم