You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
برای مدتی طولانی جاوا اسکریپت بدون مشکل سازگار پذیری توسعه داده میشد و امکانات جدید بدون اینکه نیازی به تغییر در امکانات قبلی باشد، به این زبان اضافه میشد.
3
+
برای مدتی طولانی جاوااسکریپت بدون مشکل سازگاری توسعه داده میشد و امکانات جدید بدون اینکه نیازی به تغییر در امکانات قبلی باشد، به این زبان اضافه میشد.
4
4
5
-
مزیت این موضوع در این بود که هیچگاه در کدهای قدیمی اشکالی بوجود نمیآمد. اما مشکل اینجا بود که اگر اشکالی در طراحی زبان، توسط خالقان جاوا اسکریپت رخ داده بود، تا ابد بجا میماند.
5
+
مزیت این موضوع در این بود که هیچگاه در کدهای قدیمی اشکالی بوجود نمیآمد. اما مشکل اینجا بود که اگر اشکالی در طراحی زبان، توسط خالقان جاوااسکریپت رخ داده بود، تا ابد بجا میماند.
6
6
7
7
این موضوع تا سال 2009 که ECMAScript 5 (ES5) معرفی شد، ادامه داشت.ES5 قابلیتهای جدیدی را به زبان افزود و اصلاحاتی را نیز بر روی امکانات فعلی انجام داد.
8
8
9
-
به منظور اینکه کدهای قدیمی کار کنند، بیشتر تغییراتی که در ES5 اتفاق افتاد، به صورت پیشفرض غیر فعال است، و برای فعالسازی آنها باید از طریق عبارت `"use strict"` چنین کاری را انجام داد.
9
+
به منظور اینکه کدهای قدیمی کار کنند، بیشتر تغییراتی که در ES5 اتفاق افتاد، به صورت پیشفرض غیر فعال است، و برای فعالسازی آنها باید از طریق عبارت `"use strict"` چنین کاری را انجام داد.
10
10
11
11
## "use strict"
12
12
13
-
عبارتِ دستوریِ (directive) `"use strict"` یا `'use strict'` شبیه به یک رشته است که زمانیکه در ابتدای اسکریپت قرار میگیرد، تمام اسکریپت در حالت مدرن کار خواهد کرد.
14
-
برای نمونه :
13
+
عبارتِ دستوریِ (directive) `"use strict"` یا `'use strict'` شبیه به یک رشته است و زمانی که در ابتدای اسکریپت قرار میگیرد، تمام اسکریپت در حالت مدرن کار خواهد کرد.
15
14
15
+
برای نمونه :
16
16
17
17
```js
18
18
"use strict";
19
19
20
-
//this code works the modern way
20
+
//این کد از روش مدرن کار میکند
21
21
...
22
22
```
23
23
24
-
در مورد فانکشِنها (روشی برای گروهبندی کردن دستورات) در آینده خواهیم آموخت.
25
-
26
-
در اینجا صرفا بدانید که میتوانیم در ابتدای اکثر فانکشنها `"use strict"` قرار دهیم تا قواعد مدرن صرفا بر روی کدهای داخل فانکشن اعمال شوند.
27
-
24
+
در مورد تابعها (روشی برای گروهبندی دستورات، functions) در آینده خواهیم آموخت. در اینجا صرفا بدانید که میتوانیم در ابتدای اکثر تابعها `"use strict"` قرار دهیم تا قواعد مدرن صرفا بر روی کدهای داخل تابع اعمال شوند. اما معمولا برای تمام اسکریپت استفاده میشود.
28
25
29
26
````warn header="از بالا بودن عبارت \"use strict\" در کدهای خود مطمئن شوید"
30
-
31
27
این عبارت حتما باید در ابتدای اسکریپت شما باشد، در غیر این صورت حالت مدرن فعال نخواهد شد.
32
28
Strict mode در اینجا فعال نیست :
33
29
34
30
```js no-strict
35
-
alert("some code");
36
-
// "use strict" below is ignored--it must be at the top
31
+
alert("کد");
32
+
// نادیده گرفته میشود. باید در ابتدا باشد "use strict"
37
33
38
34
"use strict";
39
35
40
-
// strict mode is not activated
36
+
// فعال نشده است strict mode
41
37
```
42
38
43
-
فقط Comment ها میتوانند در بالای `"use strict"` قرار گیرند..
39
+
فقط کامنتها میتوانند در بالای `"use strict"` قرار گیرند..
44
40
````
45
41
46
42
```warn header="هیچ راه برای خنثی کردن `use strict` وجود ندارد"
47
-
هیچ دستوری مانند `no use strict` وجود ندارد تا به موتور جاوا اسکریپت دستور دهد به روش قدیمی کار کند.
43
+
هیچ دستوری مانند `no use strict` وجود ندارد تا به موتور جاوااسکریپت دستور دهد به روش قدیمی کار کند.
48
44
زمانیکه `use strict` را قرار میدهیم، راه برگشتی وجود ندارد.
49
-
50
45
```
51
46
52
-
## کنسول مرورگر
47
+
## کنسول (console) مرورگر
53
48
54
-
در ادامه کار زمانیکه از کنسول مرورگر خود برای اجرای کدها استفاده میکنید در نظر داشته باشید که این کنسول به طور پیش فرض از `use strict` استفاده نمیکند.
55
-
گاهی اوقات زمانیکه وجود `use strict` تفاوتی ایجاد میکند، استفاده از کنسول مرورگر نتایج اشتباهی به شما خواهد داد.
49
+
در ادامه کار زمانی که از کنسول مرورگر خود برای اجرای کدها استفاده میکنید در نظر داشته باشید که این کنسول به طور پیش فرض از `use strict` استفاده نمیکند.
50
+
گاهی اوقات زمانی که وجود `use strict` تفاوتی ایجاد میکند، استفاده از کنسول مرورگر نتایج اشتباهی به شما خواهد داد.
56
51
حتی اگر از `key:Shift+Enter` برای وارد کردن عبارت `use strict` استفاده نمایید، نتیجه نخواهد داد.
57
52
58
53
راه حل قابل اتکا برای این موضوع آن است که به این شکل عبارت `use strict` را وارد نمایید :
@@ -61,20 +56,22 @@ alert("some code");
61
56
(function() {
62
57
'use strict';
63
58
64
-
// ...your code...
59
+
// ... کد شما ...
65
60
})()
66
61
```
67
62
68
-
## همیشه از "use strict" استفاده کنید
63
+
## آیا باید از "use strict" استفاده کنیم؟
64
+
65
+
این سوال ممکن است ساده بنظر برسد اما اینطور نیست.
66
+
67
+
شاید کسی پیشنهاد دهد که اسکریپتها را همراه با `"use strict"` شروع کنید... اما میدانید چه چیزی جالب است؟
69
68
70
-
ما همچنان باید به آموختن تفاوتهای use strict و default mode ادامه دهیم.
69
+
جاوااسکریپت مدرن از «کلاسها» و «ماژولها» - ساختارهای پیشرفته زبان (ما قطعا به آنها خواهیم رسید) - پشتیبانی میکند که به طور خودکار `use strict` را فعال میکنند. پس ما نیازی نیست که دستور `"use strict"` را در صورت استفاده از آنها اضافه کنیم.
71
70
72
-
در بخشهای بعدی که با قابلیتهای زبان جاوا اسکریپت آشنا میشویم، به تفاوتهای بین strict mode و "default" mode اشاره خواهیم کرد و خواهیم دید که use strict چطور زندگی ما را راحتتر کرده است.
71
+
**پس اکنون `"use strict"` یک مهمان در ابتدای اسکریپت شما است. بعدا، زمانی که کد شما تماما شامل کلاسها و ماژولها میشود، میتوانید آن را حذف کنید.**
73
72
74
-
تا به اینجا کافیست بدانید :
73
+
از هم اکنون، ما باید به طور کلی درباره `use strict` بدانیم.
75
74
75
+
در فصلهای بعدی، همانطور که خصوصیتهای زبان را یاد میگیریم، تفاوت بین حالتهای strict و قدیمی را خواهیم دید. خوشبختانه تعداد آنها زیاد نیست و در واقع آنها زندگی ما را بهتر میکنند.
76
76
77
-
1. عبارت `"use strict"` باعث فعال شدن حالت مدرن موتور جاوا اسکریپت میشود و رفتار برخی قابلیتهای درونی موتور را تغییر میدهد.
78
-
2. این حالت با قرار دادن رشته `"strict mode"` در ابتدای اسکریپت یا فانکشن فعال میشود. برخی قابلیتهای زبان از جمله "class" ها و "module" ها به صورت خودکار use strict را فعال میکنند.
79
-
3. Use strict توسط اکثر مرورگرهای مدرن پشتیبانی میشود.
80
-
4. ما توصیه میکنیم تا همیشه از `"use strict"` استفاده کنید. تمام مثالهای این آموزشها با `"use strict"` فعال انجام میشوند (مگر در موارد استثنایی که ذکر خواهند شد).
77
+
تمام مثالها درون این آموزش strict mode را تا زمانی که خلاف آن باشد (کم اتفاق میافتد) در نظر میگیرند.
0 commit comments