javascriptType conversionتبدیل نوع در جاوااسکریپت
تبدیل نوع در جاوااسکریپت را با Number و String بیاموزید؛ تفاوت جمع عددی و چسباندن متن، ورودی خالی و بررسی نتیجه را با مثال فرم ببینید.
مفهوم به زبان ساده
تبدیل نوع یعنی ساخت مقداری از نوع دیگر؛ مثلاً متن "12" را برای محاسبه به عدد 12 تبدیل کنیم. این کار ممکن است صریح باشد، مانند Number(raw)، یا در جریان یک عملیات بهصورت خودکار رخ دهد. برای خوانایی برنامه، هنگام عبور از ورودی متن به محاسبه، تبدیل صریح معمولاً منظور شما را بهتر نشان میدهد.
Number، String و Boolean ابزارهای رایج تبدیلاند، اما اعتبارسنجی کامل نیستند. Number("") صفر میشود و Number("book") مقدار NaN میدهد. همچنین Boolean("false") به دلیل غیرخالیبودن رشته true است. پس اول باید بدانید ورودی مجاز چیست و بعد نتیجه را بررسی کنید؛ اجازه ندهید تبدیل خودکار برای کاربر تصمیم پنهان بگیرد.
در مثال، تعداد کالا از فرم به صورت متن آماده شده است. جمعکردن مستقیم آن با یک، رشته را به "31" تبدیل میکند. پس از تبدیل، حاصل عددی ۴ است. بررسی صحیح و مثبتبودن هم پیش از استفاده انجام میشود. این مثال فقط رشتهٔ لاتین ساده را میپذیرد؛ برای ارقام فارسی باید عادیسازی مشخصی اضافه کنید. برای تمرین، raw را خالی کنید و توضیح دهید چرا قرارداد تعداد مثبت آن را رد میکند.
کجا به کار میآید؟
- تبدیل متن تعداد کالا پیش از محاسبهٔ مبلغ
- ساخت متن نمایشی از عدد بدون تغییر نوع دادهٔ مدل
از تعریف تا یک مثال واقعی
const raw = "3";
console.log(raw + 1);
const quantity = Number(raw);
console.log(quantity + 1);
console.log(Number.isInteger(quantity) && quantity > 0);
console.log(Number(""));
console.log(Number.isNaN(Number("book")));
31 4 true 0 true
این مثال چطور کار میکند؟
raw رشته است و + در خط اول چسباندن متن انجام میدهد.
Number مقدار عددی میسازد و جمع بعدی ۴ میشود.
خطهای آخر نشان میدهند خالیبودن و تبدیل ناموفق به بررسی جدا نیاز دارند.
اشتباه رایج
موفقبودن Number(raw) کافی نیست تا ورودی مجاز باشد. اگر فقط رقم ساده میخواهید، شکل ورودی را هم بررسی کنید؛ نماد علمی یا فاصله ممکن است طبق قواعد Number پذیرفته شود.
این را به خاطر بسپارید
تبدیل نوع را در مرز ورود داده انجام دهید و تبدیل را با اعتبارسنجی یکی ندانید.