<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های انصار میرزایی</title>
        <link>https://virgool.io/feed/@ansarmirzayi</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 13:07:57</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/245384/avatar/7UsRyP.jpeg?height=120&amp;width=120</url>
            <title>انصار میرزایی</title>
            <link>https://virgool.io/@ansarmirzayi</link>
        </image>

                    <item>
                <title>انواع داده ها</title>
                <link>https://virgool.io/@ansarmirzayi/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-trzeq4rhzszb</link>
                <description>داده ها  توی جاوااسکرپت دارای نوع های خاصی هستن مثلا عددی یا رشته ایما هشت نوع داده ی اصلی داریم هر کدوم رو یه توضیح کوتاهی خواهیم داد.ما میتونیم هر نوع داده ای رو داخل متغیر قرار بدیم. مثلا یک متغیر میتونه مقدار رشته ای داشته باشه ولی ما به اون یه مقدار عددی بدیم
// no error 
let message = &amp;quothello&amp;quot 
message = 123456;
به زبان های برنامه نویسی مثل جاوااسکریپت که چنین اجازه هایی رو میدن  “dynamically typed” میگیمنوع عددی number
let n = 123; 
n = 12.345;
نوع عددی هم اعداد صحیح و هم اعداد ممیز دار رو  نشان می دن.عملیات زیادی برای اعداد وجود داره، مثلا : ضرب *، تقسیم /، جمع +، تفریق - و غیرهبه جز اعداد منظم، به اصطلاح &quot;مقادیر عددی ویژه&quot;ای هم وجود داره که به این نوع داده تعلق دارن:Infinity ,  -Infinity , NanInfinity : به معنی بینهایت در ریاضیات. یک مقدار ویژه ای است که از هر عددی بزرگتر استalert&#40; 1 / 0 &#41;; // Infinity
alert&#40; Infinity &#41;; // Infinity NaN : نشان دهنده یک خطای محاسباتی است. این نتیجه یک عملیات ریاضی نادرست یا تعریف نشده است alert&#40; &amp;quotnot a number&amp;quot / 2 &#41;; // NaN, such division is erroneousنوع عددی BigIntدر جاوا اسکریپت، نوع «number» نمی‌تونه مقادیر صحیح بزرگ‌تر از ( 1 - 53^2  ) (یعنی 9007199254740991) یا کمتر از ( 1 - 53^2  )-  رو برای منفی‌ها نشون بده. این یک محدودیت فنی ناشی از نمایندگی داخلی اونهاستبرای اکثر اهداف ما این کاملاً کافیه، اما گاهی اوقات ما به اعداد واقعاً بزرگ نیاز داریم، به عنوان مثال. برای رمزنگاری یا مهرهای زمانی با دقت میکروثانیه.نوع BigInt اخیراً برای نمایش اعداد صحیح با طول دلخواه به زبان اضافه شده است.یک مقدار BigInt با اضافه کردن n به انتهای یک عدد صحیح ایجاد میشه// the &amp;quotn&amp;quot at the end means it&#039;s a BigInt 
const bigInt = 1234567890123456789012345678901234567890n;اما همچنان در برخی مرورگرها پشتیبانی نمیشه .میتونید از این جا لیست کامل پشتیبانی این نوع رو در مروگرهای مختلف رو ببینیدرشته stringیک رشته در جاوا اسکریپت باید با نقل قول احاطه بشه let str = &amp;quotHello&amp;quot 
let str2 = &#039;Single quotes are ok too&#039;;
let phrase = `can embed another ${str}`;در جاوا اسکریپت 3 نوع نقل قول وجود دارد.نقل قول های دوگانه یا دابل کوتیشن:  &quot;سلام&quot;نقل قول تک یا سینگل کوتیسن:  &#x27;سلام&#x27;بکتیک یا backticks: &#x60;سلام&#x60;نقل قول های دوتایی و تکی نقل قول های &quot;simple&quot; هستند. عملاً هیچ تفاوتی بین اونا در جاوا اسکریپت وجود نداره.بک‌تیک‌ها نقل قول‌های &quot;عملکرد گسترده&quot; ( extended functionality ) هستند. اونا به ما این امکان رو می دن که متغیرها و عبارات رو با قرار دادن اونها در {…}$ در یک رشته جاسازی کنیم، به عنوان مثال:let name = &amp;quotJohn&amp;quot 

// embed a variable 
alert&#40; `Hello, ${name}!` &#41;; // Hello, John!

 // embed an expression 
alert&#40; `the result is ${1 + 2}` &#41;; // the result is 3بولین  Boolean (نوع منطقی)نوع بولین تنها دو مقدار داره: true و falseاین نوع معمولاً برای ذخیره مقادیر yes/no استفاده می‌شه: true به معنای &quot;بله، صحیح&quot; و false به معنای &quot;نه، نادرست&quot;let nameFieldChecked = true; // yes, name field is checked 
let ageFieldChecked = false; // no, age field is not checkedهمچنین مقادیر بولین از مقایسه ها هم بدست میادlet isGreater = 4 &gt; 1;
 alert&#40; isGreater &#41;; // true (the comparison result is &amp;quotyes&amp;quot)مقدار &quot;null&quot;مقدار ویژه ی null به هیچ کدوم از نوع های  گفته شده در بالا تعلق نداره.یک نوع جداگونه برای خودش تشکیل می ده که فقط حاوی مقدار null هستشlet age=null;در جاوا اسکریپت، null مانند برخی از زبان‌های دیگر «اشاره به یک شی غیر موجود» یا «اشاره‌گر تهی» نیست.این فقط یک مقدار ویژه است که نشان دهنده ی &quot;هیچ&quot;، &quot;خالی&quot; یا &quot;مقدار ناشناخته&quot; است.کد بالا بیان می کنه که سن ناشناخته است.مقدار &quot;undefined&quot;مقدار ویژه ی undefined مانند نوع null یه حالت ویژه ای میباشد که وقتی متغیری را اعلام میکنیم ولی مقداری را برای آن در نظر نمیگیریم ایجاد میشودlet age;
alert&#40;age&#41;; // shows &amp;quotundefined&amp;quotابجکت ها و نمادها Objects and Symbolsبه همه ی نوع هایی که تا حالا بررسی کردیم به اصطلاح pirimitive گفته میشه چون مقدار اونها در یک لحظه فقط میتونه یک چیز باشه(مثلا یه رشته یا یه عدد یا هر چی) ولی در مقابل از ابجکت ها برای ذخیره ی مجموعه ای از داده ها و موجودیت های پیچیده تر استفاده میشهاز اونجایی که ابجکت ها خیلی توی جاوااسکریپت مهم هستند امیدوارم بعدا در رابطشون کامل حرف بزنیمنوع symbol برای ایجاد شناسه های &quot;یکتا&quot;  برای ابجکت ها استفاده می شه. شناخت کامل اون نیازمند شناخت ابجکت هاستبرای بدست آوردن نوع داده ای یک متغیر از دستور typeof استفاده میکنیمtypeof undefined // &amp;quotundefined&amp;quot 
typeof 0 // &amp;quotnumber&amp;quot 
typeof 10n // &amp;quotbigint&amp;quot 
typeof true // &amp;quotboolean&amp;quot
typeof &amp;quotfoo&amp;quot // &amp;quotstring&amp;quot 
typeof Symbol(&amp;quotid&amp;quot) // &amp;quotsymbol&amp;quot 
typeof Math // &amp;quotobject&amp;quot 
typeof null // &amp;quotobject&amp;quot  
typeof alert // &amp;quotfunction&amp;quotخلاصه8 نوع داده اصلی در جاوا اسکریپت وجود دارهnumber for numbers of any kind: integer or floating-point, integers are limited by ±(253-1).bigint is for integer numbers of arbitrary lengthstring for strings. A string may have zero or more characters, there’s no separate single-character typeboolean for true/falsenull for unknown values – a standalone type that has a single value nullundefined for unassigned values – a standalone type that has a single value undefinedobject for more complex data structuressymbol for unique identifiersخیلی ممنون که تا اینجا اومدی و سعی کردی با انواع داده ها توی جاوااسکریپت آشنا بشیاگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?منبع: https://javascript.info</description>
                <category>انصار میرزایی</category>
                <author>انصار میرزایی</author>
                <pubDate>Sun, 19 Dec 2021 17:02:16 +0330</pubDate>
            </item>
                    <item>
                <title>متغیر ها در جاوااسکریپت</title>
                <link>https://virgool.io/@ansarmirzayi/%D9%85%D8%AA%D8%BA%DB%8C%D8%B1-%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-paiqt7vj3zrj</link>
                <description>اغلب مواقع برنامه جاوا اسکریپت برای کار نیاز به اطلاعات دارهمثلا : فروشگاه آنلاین - اطلاعات ممکنه شامل کالاهای فروخته شده و سبد خرید باشهیا :یک برنامه چت - اطلاعات ممکنه شامل کاربرها، پیام ها و ... باشهبرای ذخیره این اطلاعات از متغیرها استفاده میکنیممتغیر یک &quot;فضای نامگذاری شده&quot; برای داده هاست و ما می‌تونیم از متغیرها برای ذخیره موارد، بازدیدکنندگان و سایر داده‌ها استفاده کنیمبرای ایجاد متغیر در جاوا اسکریپت، از کلمه کلیدی  let  استفاده میکنیمعبارت زیر یه متغیر با نام &quot;message&quot; ایجاد می کنه (به عبارت دیگه: اعلام می کنه):let message;حالا می‌تونیم با استفاده از عملگر انتساب مقداری داده رو داخلش قرار بدیم:let message; 
message = &#039;Hello&#039;;  // store the string &#039;Hello&#039; in the variable named messageرشته حالا در ناحیه حافظه مرتبط با متغیر ذخیره شده. ما می تونیم با استفاده از نام متغیر به اون دسترسی پیدا کنیم:let message;
message = &#039;Hello!&#039;; 
alert&#40;message&#41;; // shows the variable contentبرای کوتاه کردن، می‌تونیم تعریف متغیر و انتساب رو توی یک خط ترکیب کنیم:let message = &#039;Hello!&#039;; // define the variable and assign the value
alert&#40;message&#41;; // Hello!همچنین می تونیم چندین متغیر رو در یک خط تعریف کنیم:let user = &#039;John&#039;, age = 25, message = &#039;Hello&#039;;ممکنه کوتاه‌تر به نظر برسه، اما توصیه نمیشه. برای خوانایی بهتر، در هر خط از یک متغیر استفاده کنید.نوع چند خطی شاید کمی طولانی تر به نظر برسه، اما خوانایی کد رو افزایش میده:let user = &#039;John&#039;; 
let age = 25;
let message = &#039;Hello&#039;;برخی افراد هم ، چندین متغیر رو با این سبک به صورت چند خطی تعریف می کنن:let    user = &#039;John&#039;, 
         age = 25, 
        message = &#039;Hello&#039; ;کلمه کلیدی var به جای let :توی اسکریپت های قدیمی، ممکنه کلمه کلیدی دیگه ای هم پیدا کنید: var به جای let:var message = &#039;سلام&#039;;کلمه کلیدی var تقریباً همان let هستش. دقیقا یک متغیر رو اعلام می‌کنه، اما به روشی «قدیمی» و کمی متفاوت.تفاوت های ظریفی بین let و var وجود داره، اما اونا هنوز برای ما مهم نیستند. بعدا شاید در رابطه باهاش حرف بزنیمما می‌تونیم به راحتی مفهوم «متغیر» رو درک کنیم، اگه اون رو به‌عنوان «جعبه‌ای» برای داده‌ها با برچسبی منحصربه‌فرد روی اون تصور کنیم.به عنوان مثال، متغیر message رو می تونین شبیه جعبه ای با برچسب &quot;message&quot; با مقدار &quot;Hello!&quot; تصور کنید.که در اون:ما می تونیم هر مقداری رو در داخل جعبه قرار بدیمما همچنین می تونیم اون رو هر چند بار که خواستیم تغییر بدیمlet message; 
message = &#039;Hello!&#039;; 
message = &#039;World!&#039;; // value changed 
alert&#40;message&#41;;وقتی که مقدار تغییر می کنه، داده های قدیمی از متغیر حذف می شن:همچنین می تونیم دو متغیر رو تعریف کنیم و داده هاشون رو از یکی به دیگری کپی کنیم.let hello = &#039;Hello world!&#039;;
let message; 

// copy &#039;Hello world&#039; from hello into message 
message = hello; 

// now two variables hold the same data 
alert&#40;hello&#41;; // Hello world! 
alert&#40;message&#41;; // Hello world!تعریف دوباره ی همون متغیر یک خطا است. یک متغیر باید فقط یک بار اعلام بشهlet message = &amp;quotThis&amp;quot

 // repeated &#039;let&#039; leads to an error 
let message = &amp;quotThat&amp;quot  // SyntaxError: &#039;message&#039; has already been declaredپس، یک متغیر رو باید یکبار اعلام کنیم و بعدش بدون let به اون مراجعه کنیم.(مقدارش رو بگیریم یا تغییرش بدیم)نامگذاری متغیرهادو تا محدودیت برای نامگذاری متغیرها تئی جاوا اسکریپت وجود داره:نام باید فقط شامل حروف، اعداد یا نمادهای $ و _ باشه.اولین کاراکتر نباید رقمی باشه.let userName; 
let test123;ثابت ها ( constants )برای اعلام و تعریف یه متغیر ثابت (غیر قابل تغییر)، به جای let از const استفاده میکنیم:const myBirthday = &#039;18.04.1982&#039;;متغیرهای اعلام شده با استفاده از const &quot;ثابت&quot; گفته می شن. اونها رو نمیشه دوباره مقداردهی کرد. تلاش برای انجام این کار باعث ایجاد خطا می شه:const myBirthday = &#039;18.04.1982&#039;;
myBirthday = &#039;01.01.2001&#039;; // error, can&#039;t reassign the constant!وقتی یک برنامه نویس مطمئن باشه که یک متغیر هرگز تغییر نمیکنه، می تونه اون رو  با const اعلام کنه تا تضمین شده باشه و به همه این واقعیت رو اعلام کنه.خلاصهبا استفاده از کلمات کلیدی var، let یا const می تونیم متغیرها رو برای ذخیره داده ها اعلام کنیم.یک :  let – یک اعلان متغیر مدرن است.دو :   var - یک اعلان متغیر قدیمی است. معمولاً ما اصلاً از آن استفاده نمی‌کنیمسه:  const - مانند let است، اما مقدار متغیر را نمی توان تغییر داد.متغیرها رو باید به گونه‌ای نام‌گذاری کنیم که به ما این امکان رو بده که به راحتی بفهمیم چه چیزی داخل اونها وجود دارهخیلی ممنون که تا اینجا اومدی و سعی کردی با متغیرها توی جاوااسکریپت آشنا بشیاگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?منبع: https://javascript.info</description>
                <category>انصار میرزایی</category>
                <author>انصار میرزایی</author>
                <pubDate>Sun, 12 Dec 2021 12:28:46 +0330</pubDate>
            </item>
                    <item>
                <title>سلام، دنیا!</title>
                <link>https://virgool.io/@ansarmirzayi/%D8%B3%D9%84%D8%A7%D9%85-%D8%AF%D9%86%DB%8C%D8%A7-l6gy5axkmcak</link>
                <description>توی این مقاله میخواییم در مورد خود زبان جاوا اسکریپت (core JavaScript) حرف بزنیمما به یک محیط کاری برای اجرای اسکریپت های خودمون نیاز داریم و از اونجایی که این یه مقاله ی آنلاین هستش،خود مرورگر انتخاب خوبیه.اما استفاده از این دستورات خاص مرورگر &quot;مانند ()alert &quot; رو به حداقل میرسونیم تا اگه قصد دارید روی محیط دیگه ای (مانند Node.js) تمرکز کنید، وقت خودتون رو برای اونها صرف نکنید. توی پست های بعدی حتما روی جاوا اسکریپت در مرورگر متمرکز میشیم.پس برای شروع، بیایید ببینیم چطوری یه اسکریپت رو به یک صفحه وب متصل می کنیم. برای محیط های سمت سرور (مانند Node.js)، می تونید اسکریپت رو با دستوری مانند &quot;node my.js&quot; اجرا کنید.در رابطه با node بعدا مفصل حرف خواهیم زد.برچسب scriptبرنامه های جاوا اسکریپت رو میشه تقریباً در هر جایی از  یک سند HTML با استفاده از تگ  وارد کرد. برای مثال:index.html&lt;!DOCTYPE HTML&gt;
&lt;html&gt;
      &lt;body&gt;
           &lt;p&gt;Before the script...&lt;/p&gt;
             
                 alert&#40; &#039;Hello, world!&#039; &#41;;
           
           &lt;p&gt;After the script...&lt;/p&gt;
       &lt;/body&gt;
&lt;/html&gt;می‌تونید مثال بالا رو داخل یک فایل به نام دلخواه مثلا index.html بریزید و بعد ذخیره و اجرا کنید.فایل ها با فرمت html بصورت پیشفرض توسط مرورگر اجرا میشن. و یا به صورت آنلاین تست کنیدتگ  حاوی کد جاوا اسکریپت هست که زمانی که مرورگر تگ رو پردازش می کنه به طور خودکار اجرا می شه.اسکریپت های خارجی &quot;External scripts&quot;اگه کد جاوا اسکریپت زیادی داریم، می تونیم اون رو توی یک فایل جداگانه قرار بدیم. فایل های اسکریپت با ویژگی src به HTML پیوست می شن:&lt;script src=&amp;quot/path/to/script.js&amp;quot&gt;در اینجا، /path/to/script.js یک مسیر مطلق به اسکریپت از ریشه سایت است. ولی می تونیم یک مسیر نسبی از صفحه فعلی در نظر بگیریم. برای مثال، &quot;src=&quot;script.js ، درست مثل &quot;src=&quot;./script.js به معنای فایل &quot;script.js&quot; در پوشه فعلی است. به این مثال دقت کنیدهمچنین می تونیم یک URL کامل نیز بدیم. برای مثال:&lt;script src=&amp;quothttps://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js&amp;quot&gt;برای پیوست کردن چندین اسکریپت هم، از چندین تگ میتونیم استفاده کنیم&lt;script src=&amp;quot/js/script1.js&amp;quot&gt;
&lt;script src=&amp;quot/js/script2.js&amp;quot&gt;نکته: اگه src تنظیم شده باشه، محتوای اسکریپت دیگه نادیده گرفته میشه.&lt;script src=&amp;quotfile.js&amp;quot&gt;
     alert&#40;1&#41;; // این قسمت نادیده گرفته میشه و اصلا اجرا نمیشه
ما باید یک &lt; ...=script src&gt; خارجی یا یک  معمولی با کد رو انتخاب کنیم.مثال بالا رو میشه برای کار کردن صحیح به دو اسکریپت تقسیم کرد:&lt;script src=&amp;quotfile.js&amp;quot&gt;
     alert&#40;1&#41;;
خیلی ممنون که تا اینجا اومدی و سعی کردی به دنیا سلام بدیاگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?منبع :javascript.info</description>
                <category>انصار میرزایی</category>
                <author>انصار میرزایی</author>
                <pubDate>Mon, 06 Dec 2021 23:01:39 +0330</pubDate>
            </item>
                    <item>
                <title>مقدمه ای بر جاوا اسکریپت</title>
                <link>https://virgool.io/@ansarmirzayi/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-wryquxhwbgmp</link>
                <description>اول از همه باید ببینیم چه چیزی جاوااسکریپت رو بسیار خاص کرده و چه چیزی رو باهاش به دست میاریم و چه فناوری هایی از جاوااسکریپت استفاده میکننجاوا اسکریپت چیه؟جاوا اسکریپت در ابتدا برای “زنده کردن صفحات وب” ایجاد شد و ما ، به برنامه های تولید شده با این زبان اسکریپت (script)میگیم.این اسکریپت ها رو میشه مستقیما توی HTML یک صفحه وب نوشت و با بارگذاری صفحه به طور خودکار اجرا میشن.اسکریپت ها در حین ارائه ، اجرا می شن .پس نیازی به آماده سازی و کامپایل قبلی خاصی ندارند. به خاطر همینه که جاوااسکریپت با جاوا خیلی متفاوته.حالا چرا بهش میگن جاوااسکریپت؟ ?زمانی که جاوا اسکریپت ایجاد شد، بهش میگفتن: &quot;LiveScript&quot;. اما جاوا توی اون دوران خیلی محبوب بود،پس تصمیم گرفتن از لفظ &quot;برادر کوچکتر&quot; استفاده کنن تاکه از اسم جاوا برای معرفی خودشون کمک بگیرن.اما روز به روز که جاوا اسکریپت تکامل پیدا کرد، به یک زبان کاملاً مستقل با مشخصات خاص خودش به نام ECMAScript تبدیل شد و حالا اصلاً ارتباطی با جاوا نداره.الان جاوا اسکریپت می تونه نه تنها توی مرورگر، بلکه توی سرور یا در واقع  روی هر دستگاهی که دارای برنامه خاصی به نام موتور جاوا اسکریپت باشه، اجرا بشه.مرورگرها خودشون دارای یک موتور جاسازی شده هستن که اغلب بهشون &quot;ماشین مجازی جاوا اسکریپت&quot; میگیم.موتورهای مختلف  اسم های (codenames) متفاوتی دارن. مثلا:اولی  :  V8 در کروم و اپرا و Edgeدومی: SpiderMonkey در فایرفاکسموتورهای دیگه ای مثل «Chakra» برای اینترنت اکسپلورر، «JavaScriptCore»، «Nitro» و «SquirrelFish» برای Safari و ... وجود داره.اصطلاحات بالا رو سعی کنید یادتون باشه چون داخل خیلی از مقاله ها  استفاده می شن. ما هم استفاده خواهیم کرد . برای مثال، اگر «ویژگی X توسط V8 پشتیبانی بشه»، احتمالاً در Chrome، Opera و Edge کار می‌کنه.موتورها چیکار میکنن؟ ? به طور کلی موتورها ساختار پیچیده ای دارن. اما اصول اولیه اون ها ساده و قابل درکه 1 -موتور  اسکریپت رو می خونه (&quot;تجزیه می کنه&quot;).2 - بعدش اسکریپت رو به زبان ماشین تبدیل می کنه (&quot;کامپایل&quot;) می کنه.3 -و در آخر، کد توسط ماشین خیلی  سریع اجرا می شه.موتور توی هر کدوم از این مرحله ها ،بهینه سازی ها رو اعمال می کنه. حتی اسکریپت کامپایل شده رو هم در حین اجرا تماشا می‌کنه، داده‌هایی که جریان پیدا میکنند رو تجزیه و تحلیل می‌کنه و کد ماشین رو بر اساس اونا بهینه‌سازی می‌کنه.جاوا اسکریپتِ درون_مرورگر چه کاری می تونه انجام بده؟جاوا اسکریپت مدرن یه زبان برنامه نویسی &quot;ایمن&quot; هستش. دسترسی سطح پایین به حافظه یا CPU رو فراهم نمی کنه، چون از اول برای مرورگرهایی که به این ویژگی ها نیاز نداشتن ایجاد شد.دسترسی های جاوا اسکریپت تا حد زیادی به محیطی که توی اون اجرا می‌شه بستگی داره. برای مثال، Node.js از یه سری توابعی پشتیبانی می‌کنه که به جاوا اسکریپت اجازه خوندن/نوشتن فایل‌های دلخواه، انجام درخواست‌های شبکه ای و ... رو می‌ده.جاوا اسکریپت درون_مرورگری می تونه همه کارهای مربوط به دستکاری صفحه وب، تعامل با کاربر و وب سرور رو انجام بده. به عنوان مثال میتونه:یه صفحه HTML جدید اضافه کنه،محتوا و سبک موجود رو تغییر بده. به تحرکات و اقدامات کاربر واکنش نشون بده، مثلا با کلیک ماوس، حرکت اشاره گر، فشار دادن کلید اجرا بشه.میتونه از طریق شبکه به سرورها درخواست ارسال کنه، فایل دانلود و یا آپلود کنه (به اصطلاح ، فناوری های AJAX و COMET).کوکی ها رو دریافت و یا تنظیم کنه، میتونید از بازدیدکننده سوال بپرسید و یا پیامی رو بهش نشون بدید.یه سری داده ها رو به خاطر بسپاره  (&quot;local storage&quot;).جاوا اسکریپتِ درون_مرورگر چه کارهایی رو نمی تونه انجام بده؟دسترسی ها و توانایی های جاوا اسکریپت داخل مرورگر به خاطر ایمنی کاربر محدود شده. هدف اینه که از دسترسی یک صفحه وب شرور به اطلاعات خصوصی یا آسیب رسوندن به داده های کاربر جلوگیری بشه.نمونه هایی از این محدودیت ها عبارتند از:جاوا اسکریپت توی یک صفحه وب عملیات خوندن/نوشتن روی هارد دیسک رو ممکنه نتونه انجام بده،و یا اون ها رو کپی کنه یا برنامه هایی رو ازش اجرا کنه چون دسترسی مستقیم به عملکردهای سیستم عامل (OS)رو نداره.      مرورگرهای مدرن به این جاوااسکریپت اجازه می‌دن با فایل‌ها کار کنه، اما همچنان دسترسی محدود هستش        و تنها در صورتی این اتفاق میوفته که کاربر اقدامات خاصی رو انجام بده، مثلا &quot;انداختن&quot; یک فایل در پنجره        مرورگر یا انتخاب اون از طریق تگ &lt;input&gt;.       راه‌هایی هم برای تعامل با دوربین/میکروفون و سایر دستگاه‌ها وجود داره، اما اونها هم به اجازه صریح کاربر        نیاز دارن. بنابراین یک صفحه دارای جاوا اسکریپت نمیتونه یواشکی دوربین وب رو فعال کنه، محیط اطراف         رو مشاهده کنه و اطلاعات رو ارسال کنه به  F.₳.T.Ã ? تب ها/پنجره های مختلف معمولاً از هم اطلاعی ندارن ولی گاهی اوقات این کار رو انجام می دن، برای مثال زمانی که یک پنجره با استفاده از جاوا اسکریپت، یه پنجره دیگه ای رو باز میکنه. اما حتی در این مورد هم، جاوا اسکریپتِ یک صفحه، نمیتونه به بقیه ، که  از سایت های مختلف (از دامنه، پروتکل یا پورت متفاوت)  دیگه ای اومدن، دسترسی داشته باشه.      به این &quot;Same Origin Policy&quot; می گن. برای حل این مشکل، هر دو صفحه باید برای تبادل داده توافق کنن و       این کار رو هم یک کد جاوا اسکریپت خاصی انجام و مدیریت میکنه. که بعدا در رابطه باهاش حتما مقاله       های جدایی میزارم.      این محدودیت -مجدداً میگم - برای ایمنی کاربر هستش. صفحه ای مانند .http://virgool.io که کاربر بازش       کرده  نباید به برگه مرورگر دیگه ای  با آدرس http://google.com دسترسی داشته باشه و اطلاعات را از اونجا       بدزده.?جاوا اسکریپت می تونه به راحتی از طریق شبکه با سروری که صفحه فعلی از اونجا اومده ارتباط برقرار کنه. اما توانایی اون برای دریافت داده از سایت ها/دامنه های دیگه منع شده. اگرچه ممکنه، اما به توافق صریح دوطرفه نیاز داره. برای بار چندم میگم، این یک محدودیت ایمنی است.اگر جاوا اسکریپت خارج از مرورگر، به عنوان مثال روی یک سرور، اجرا بشه، چنین محدودیت هایی رو هم نداره. حتی مرورگرهای مدرن هم، با پلاگین ها و یا افزونه هایی اجازه پیدا میکنند که مجوزهایی رو درخواست کنند.چه چیزی باعث میشه جاوااسکرپت منحصر به فرد باشه؟حداقل سه تا چیز عالی در مورد جاوا اسکریپت وجود داره:ادغام کامل با HTML/CSS.کارای ساده به سادگی انجام می شه.توسط همه ی مرورگرهای اصلی پشتیبانی می شه و به طور پیش فرض هم فعاله.جاوا اسکریپت تنها فناوری مبتنی بر مرورگر هستش که این سه مورد راو با هم ترکیب کرده.?این چیزیه که جاوا اسکریپت رو منحصر به فرد می کنه. به همین دلیل هم، گسترده ترین ابزار برای ایجاد رابط های مرورگر هستش. جاوا اسکریپت همچنین امکان ایجاد کردن سرور، برنامه های کاربردی موبایل و غیره رو هم فراهم می کنه.فراتر از جاوااسکریپتسینتکس جاوا اسکریپت با نیازهای همه سازگار نیست. افراد مختلف ویژگی های متفاوتی می خوان.این قابل درک هستش، چون که پروژه ها و الزامات برای همه متفاوته.بنابراین اخیراً تعداد زیادی از زبان‌های جدید ظاهر شده‌ که قبل از اجرا در مرورگر، اول به جاوا اسکریپت تبدیل (converted) می‌شن.در واقع به توسعه دهنده ها این امکان رو می دن که با زبان دیگه ای کدنویسی کنن و اونو به صورت خودکار به جاوااسکریپت تبدیل کنند.نمونه هایی از این زبان ها:CoffeeScriptTypeScriptFlowDart Brython Kotlinخلاصهجاوا اسکریپت در ابتدا به عنوان یک زبان فقط برای مرورگر ایجاد شد، اما حالا روی بسیاری از محیط های دیگه هم استفاده می شه.جاوا اسکریپت به عنوان پرکاربردترین زبان مرورگر هستش که به طور کامل با HTML/CSS ادغام شده و موقعیت منحصر به فردی داره.زبان‌های زیادی وجود داره که به جاوا اسکریپت تبدیل (transpiled) می‌شن و ویژگی‌های خاصی رو هم ارائه می‌کنن. توصیه می شه پس از تسلط بر جاوا اسکریپت، حداقل به طور خلاصه نگاهی به اونها هم بیندازید.خیلی ممنون که تا اینجا اومدی و سعی کردی یه آشنایی اولیه از جاوااسکریپت به دست بیاری اگه چیزی بود که من اشتباه متوجه شدم حتما بهم بگو تا کنار هم یاد بگیریم ?منبع :javascript.info</description>
                <category>انصار میرزایی</category>
                <author>انصار میرزایی</author>
                <pubDate>Sat, 04 Dec 2021 01:00:01 +0330</pubDate>
            </item>
            </channel>
</rss>