اعداد و عملگرهای حسابی
جاوا اسکریپت از طیف گسترده ای از عملیات ریاضی پشتیبانی می کند و آن را به ابزاری قدرتمند برای محاسبات عددی، از محاسبات پایه تا محاسبات ریاضی پیچیده تر تبدیل می کند. درک نحوه کار با اعداد و عملگرها برای هر برنامه نویس جاوا اسکریپت ضروری است.
اعداد صحیح در مقابل اعداد ممیز شناور
در جاوا اسکریپت، اعداد را می توان با اعشار یا بدون اعشار نوشت. برخلاف برخی از زبان های برنامه نویسی دیگر، جاوا اسکریپت بین انواع اعداد (مانند اعداد صحیح در مقابل اعداد ممیز شناور) تفاوت قائل نمی شود. هر دو به سادگی به عنوان نوع Number شناخته می شوند.
let integerExample = 42; let floatingPointExample = 3.14;عملگرهای حسابی
جاوا اسکریپت شامل چندین عملگر برای انجام عملیات حسابی اساسی است:
- + جمع: دو عدد را اضافه می کند.
- - تفریق: عدد دوم را از عدد اول کم می کند.
- * ضرب: دو عدد را ضرب می کند.
- / تقسیم: عدد اول را بر عدد دوم تقسیم می کند.
- % مدول (باقی مانده): باقیمانده تقسیم عدد اول بر عدد دوم را برمی گرداند.
- ++ افزایش: یک را به عملوند خود اضافه می کند.
- -- کاهش: یک را از عملوند آن کم می کند.
let sum = 10 + 5; // 15 let difference = 10 - 5; // 5 let product = 10 * 5; // 50 let quotient = 10 / 5; // 2 let remainder = 10 % 3; // 1 let count = 1; count++; // count is now 2 count--; // count is now 1اپراتورهای واگذاری
عملگرهای انتساب برای تخصیص مقادیر به متغیرها استفاده می شوند. عملگر تخصیص پایه = است، اما عملگرهای انتساب مرکب نیز وجود دارند که یک عملیات حسابی را با انتساب ترکیب می کنند:
- = مقداری را به یک متغیر اختصاص می دهد.
- += اضافه می کند و اختصاص می دهد.
- -= تفریق و اختصاص می دهد.
- *= ضرب و اختصاص می دهد.
- /= تقسیم و اختصاص می دهد.
- %= مدول را اعمال می کند و تخصیص می دهد.
let x = 10; x += 5; // Equivalent to x = x + 5; x is now 15 x -= 3; // Equivalent to x = x - 3; x is now 12 x *= 2; // Equivalent to x = x * 2; x is now 24 x /= 4; // Equivalent to x = x / 4; x is now 6 x %= 4; // Equivalent to x = x % 4; x is now 2مقایسه و عملگرهای منطقی
عملگرهای مقایسه برای مقایسه دو مقدار استفاده می شوند، در حالی که عملگرهای منطقی برای تعیین منطق بین متغیرها یا مقادیر استفاده می شوند.
- عملگرهای مقایسه: == (برابر)، != (مساوی نیست)، > (بزرگتر از)، < (کمتر از)، >= (بزرگتر یا مساوی)، <= (کمتر یا مساوی)، === (به طور دقیق برابر)، !== (به شدت برابر نیست).
- عملگرهای منطقی: && (منطقی AND)، || (یا منطقی)، ! (منطقی نه).
مقادیر عددی ویژه
جاوا اسکریپت چندین مقدار عددی ویژه دارد:
- بی نهایت (Infinity): بیانگر بی نهایت ریاضی است. هر عدد مثبت تقسیم بر صفر به بی نهایت منجر می شود.
- -بی نهایت (-Infinity): نشان دهنده بی نهایت منفی است. هر عدد منفی تقسیم بر صفر به -بی نهایت منجر می شود.
- NaN: مخفف "Not-a-Number" است. نتیجه یک عملیات ریاضی نامعتبر یا تعریف نشده است.
console.log(1 / 0); // Infinity console.log(-1 / 0); // -Infinity console.log("not a number" / 2); // NaNاعداد و عملگرها پایه و اساس عملیات ریاضی در جاوا اسکریپت را تشکیل می دهند. با درک نحوه استفاده موثر از اینها، می توانید طیف گسترده ای از محاسبات ریاضی را برای حل مسائل، دستکاری داده ها و پیاده سازی منطق پیچیده در برنامه های کاربردی وب خود انجام دهید.
مدیریت متن در جاوا اسکریپت
مدیریت متن در جاوا اسکریپت در درجه اول از طریق رشته ها انجام می شود که دنباله ای از کاراکترها هستند که برای نمایش متن استفاده می شوند. رشتهها در جاوا اسکریپت را میتوان با استفاده از نقلقولهای تکی (')، گیومههای دوتایی (")، یا بکتیکها (`) برای قالبهای تحت اللفظی قالب ایجاد کرد. درک نحوه کار با رشتهها برای تعامل با کاربر، نمایش دادهها و دستکاری متن ضروری است.
ایجاد رشته ها
شما می توانید رشته ها را با قرار دادن متن در داخل نقل قول ایجاد کنید. در اینجا چگونه است:
let singleQuoteString = 'Hello, world!'; let doubleQuoteString = "Hello, world!";هر دو روش به یک اندازه معتبر هستند. انتخاب بین نقل قول های تکی و دوگانه اغلب به ترجیحات سبک شخصی یا پروژه بستگی دارد.
الفاظ الگو – Template Literals
حروف الفبای الگو با بک تیک (`) نشان داده می شوند، نه گیومه های تک سنتی یا دو نقل قول. در این بکتیکها، میتوانید متن معمولی و عبارات تعبیهشده را بنویسید که در پرانتزهای فرفری محصور شده و قبل از آن علامت دلار (${}) وجود دارد.
let name = 'Alice'; let greeting = `Hello, ${name}!`; console.log(greeting); // "Hello, Alice!"حروف الفبای الگو با بکتیک (`) تعریف می شوند و می توانند چندین خط را در بر گیرند. یکی از مزایای بزرگ قالب literals پشتیبانی از رشته های چند خطی بدون نیاز به درج صریح خطوط شکسته است:
let multiLineString = `This is a string that spans multiple lines.`; console.log(multiLineString);الفبای الگوی تو در تو
الفاظ قالب همچنین می تواند تودرتو باشد، که می تواند هنگام ایجاد رشته های پیچیده مفید باشد:
let user = { name: "Anna", age: 30 }; let greeting = `Hello, ${user.name} (${user.age} Years old)`; console.log(greeting); // Output: "Hello, Anna (30 Years old)"برچسبگذاری شده با واژههای قالب / Tagged Template Literals
یک تابع گسترده از لفظ های قالب، به اصطلاح "الگوهای برچسب گذاری شده" هستند. یک تابع برای پردازش خروجی الگو قبل از نهایی کردن رشته استفاده می شود. این می تواند برای محلی سازی، اقدامات امنیتی در برابر حملات XSS یا دستکاری های پیچیده رشته مفید باشد.
function highlight(strings, ...values) { let str = ''; strings.forEach((string, i) => { str += `${string}${values[i] || ''}`; }); return str; } let name = "Anna"; let message = highlight`Hallo, ${name}!`; document.body.innerHTML = message; // نام آنا را به طور برجسته در متن وب سایت قرار می دهدرشته های رایج – String Methods
در جاوا اسکریپت، رشته ها اشیایی هستند که روش های مختلفی را برای دستکاری و برخورد با رشته ها ارائه می دهند. این روش ها به توسعه دهندگان اجازه می دهد تا به راحتی کار با متن را انجام دهند.
Concatenation
فرآیند اتصال دو یا چند رشته به یکدیگر است. این را می توان با استفاده از عملگر + یا متد concat() انجام داد.
let hello = 'Hello, '; let world = 'world!'; let greeting = hello + world; // Using the + operator console.log(greeting); // "Hello, world!" greeting = hello.concat(world); // Using the concat() method console.log(greeting); // "Hello, world!"length
ویژگی length تعداد کاراکترهای یک رشته را برمی گرداند.
let message = 'Hello, world!'; console.log(message.length); // 13دسترسی به کاراکترها – Characters
شما می توانید با استفاده از علامت گذاری براکت، مانند دسترسی به عناصر آرایه، به کاراکترهای جداگانه در یک رشته دسترسی داشته باشید. به یاد داشته باشید که شاخص های رشته ای مبتنی بر صفر هستند.
let firstChar = message[0]; // 'H' let secondChar = message[1]; // 'e'جستجو در یک رشته – Searching Within a String
جاوا اسکریپت چندین روش برای جستجو در یک رشته فراهم می کند، مانند indexOf()، lastIndexOf() و includes().
let sentence = 'The quick brown fox jumps over the lazy dog.'; console.log(sentence.indexOf('fox')); // 16 console.log(sentence.includes('dog')); // trueاستخراج زیر رشته ها – Extracting Substrings
برای استخراج بخش هایی از یک رشته، می توانید از متدهایی مانند slice()، substring() و substr() استفاده کنید.
let extracted = sentence.slice(4, 9); // "quick" console.log(extracted);جایگزینی محتوا – Replacing Content
متد replace() وقوع یک زیر رشته در یک رشته را با یک زیررشته جدید جایگزین می کند.
let newSentence = sentence.replace('lazy', 'energetic'); console.log(newSentence); // "The quick brown fox jumps over the energetic dog."تغییر حروف – Changing Case
برای تغییر حروف یک رشته، می توانید از toUpperCase() و toLowerCase() استفاده کنید.
let lower = 'hello, world!'; let upper = lower.toUpperCase(); console.log(upper); // "HELLO, WORLD!" let lowerAgain = upper.toLowerCase(); console.log(lowerAgain); // "hello, world!"رشته ها بخش اساسی برنامه نویسی جاوا اسکریپت هستند که به شما امکان می دهند متن را به روش های مختلف دستکاری کنید. از ایجاد تبریک های ساده تا پردازش داده های پیچیده، درک نحوه کار موثر با رشته ها به شما کمک می کند تا برنامه های کاربردی وب پویا و تعاملی بسازید.
آزمون / Quiz
نکات کلیدی / Key Takeaways
- جاوا اسکریپت بین اعداد صحیح و اعشاری تفاوت قائل نمیشود — همه نوع Number هستند.
- عملگرهای حسابی: + - * / % و افزایش/کاهش ++ --
- عملگرهای انتساب مرکب: += -= *= /= %= ترکیب عملیات و انتساب
- عملگرهای مقایسه: == === != !== > < >= <= (=== بررسی نوع + مقدار)
- مقادیر ویژه: Infinity، -Infinity، NaN
- Template Literals با بکتیک (`) برای رشتههای چندخطی و درج متغیر با ${}
- String Methods: concat()، length، indexOf()، includes()، slice()، replace()، toUpperCase()، toLowerCase()