js data types javascript

جاوااسکریپت به روایت آمیرزا: همه تنبلا! (یا به قول فرنگی‌ها Lazy ways)

تو جاوااسکریپت یه سری راه ساده و سرراست برای تبدیل کردن یک متغیر از یک نوع به نوع دیگه هست که فرنگی‌ها بهش میگن lazy ways و درصورت نیاز میتونیم ازشون برای تبدیل یک متغیر از یک نوع داده به یک نوع داده دیگه استفاده کنیم. مثلا وقتی یک عدد که در قالب رشته (string) هست ضربدر یک عدد دیگه کنیم، نتیجه از نوع عدد میشه. این حالت برای عملگر منها یا همون تفریق هم حاکمه!

console.log("5" * 2)	// 10
typeof("5" * 2)		// number
console.log("5" - 2)	// 3
typeof("5" - 2)		// number

در نتیجه اگه یک عدد که به صورت رشته‌ی متنی هست رو ضربدر یک کنیم از نوع رشته‌ی متنی تبدیل به نوع عدد میشه، یا میتونیم اون رشته رو منهای صفر کنیم!

console.log("5" * 1)	// 5
typeof("5" * 1)		// number
console.log("5" - 0)	// 5
typeof("5" - 0)		// number

این قوانین شامل اعداد اعشاری هم میشه. علاوه بر این، اگه دو طرف عملگر * هر دو عددی به صورت رشته متنی باشند، باز هم حرف‌هایی که زدیم صادق هستند:

console.log("5" * "2")	// 10
typeof("5" * "2")		// number

حرفهایی که برای عملگرهای ضرب و منها زدیم، برای عملگر + صادق نیست! چرا؟ چون علامت + علاوه بر وظیفه‌ای که تو عملیات‌های ریاضی داره، برای الحاق (همون چسبوندن خودمون) دو رشته متنی به همدیگه هم استفاده میشه. برای همین وقتی یک عدد که به صورت رشته متنی هست رو با یک عدد جمع میکنیم، جاوااسکریپت طرف دوم که عدد هست رو تبدیل به رشته میکنه و اون رو به رشته اول میچسبونه!

 "5" + 1		// "51"
 typeof("5" + 1)	// string

با توجه به حرفهایی که زدیم، یه روش ساده (lazy way) برای تبدیل عدد به رشته جمع کردنش با یه رشته‌ی خالی هست. منظور از رشته‌ی خالی همون “” هست.

 25 + ""		// "25"
 typeof(25 + "")	// string

امیدوارم در آینده بیشتر بتونیم راجع به جاوااسکریپت حرف بزنیم.

قربان شما،

آمیرزا

Avatar

آمیرزا

یه برق‌خونده‌ی علاقه‌مند به برنامه‌نویسی

2 دیدگاه برای “جاوااسکریپت به روایت آمیرزا: همه تنبلا! (یا به قول فرنگی‌ها Lazy ways)

    1. ممنون از تذکرتون.
      دوباره چک کردم مثالها رو، حتی typeof هرکدوم از مثالها رو هم جهت اطمینان به نوشته اضافه کردم.
      شاید چون مثالها توی ()console.log بودند موقع اجرا اینطور به نظر میومد که عدد هست نه رشته!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *