Skip to content

Commit fd5a8fb

Browse files
authored
Merge pull request #234 from mahdiHash/js-02-03
Update The modern mode, "use strict"
2 parents a86bed9 + 8937fe7 commit fd5a8fb

1 file changed

Lines changed: 26 additions & 29 deletions

File tree

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,53 @@
11
# حالت مدرن، “use strict”
22

3-
برای مدتی طولانی جاوا اسکریپت بدون مشکل سازگار پذیری توسعه داده می‌شد و امکانات جدید بدون اینکه نیازی به تغییر در امکانات قبلی باشد، به این زبان اضافه می‌شد.
3+
برای مدتی طولانی جاوااسکریپت بدون مشکل سازگاری توسعه داده می‌شد و امکانات جدید بدون اینکه نیازی به تغییر در امکانات قبلی باشد، به این زبان اضافه می‌شد.
44

5-
مزیت این موضوع در این بود که هیچگاه در کدهای قدیمی اشکالی بوجود نمی‌آمد. اما مشکل اینجا بود که اگر اشکالی در طراحی زبان، توسط خالقان جاوا اسکریپت رخ داده بود، تا ابد بجا می‌ماند.
5+
مزیت این موضوع در این بود که هیچگاه در کدهای قدیمی اشکالی بوجود نمی‌آمد. اما مشکل اینجا بود که اگر اشکالی در طراحی زبان، توسط خالقان جاوااسکریپت رخ داده بود، تا ابد بجا می‌ماند.
66

77
این موضوع تا سال 2009 که ECMAScript 5 (ES5) معرفی شد، ادامه داشت.ES5 قابلیت‌های جدیدی را به زبان افزود و اصلاحاتی را نیز بر روی امکانات فعلی انجام داد.
88

9-
به منظور اینکه کدهای قدیمی کار کنند، بیشتر تغییراتی که در ES5 اتفاق افتاد، به صورت پیش‌فرض غیر فعال است، و برای فعال‌سازی آنها باید از طریق عبارت `"use strict"` چنین کاری را انجام داد.
9+
به منظور اینکه کدهای قدیمی کار کنند، بیشتر تغییراتی که در ES5 اتفاق افتاد، به صورت پیش‌فرض غیر فعال است، و برای فعال‌سازی آن‌ها باید از طریق عبارت `"use strict"` چنین کاری را انجام داد.
1010

1111
## "use strict"
1212

13-
عبارتِ دستوریِ (directive) `"use strict"` یا `'use strict'` شبیه به یک رشته است که زمانیکه در ابتدای اسکریپت قرار می‌گیرد، تمام اسکریپت در حالت مدرن کار خواهد کرد.
14-
برای نمونه :
13+
عبارتِ دستوریِ (directive) `"use strict"` یا `'use strict'` شبیه به یک رشته است و زمانی که در ابتدای اسکریپت قرار می‌گیرد، تمام اسکریپت در حالت مدرن کار خواهد کرد.
1514

15+
برای نمونه :
1616

1717
```js
1818
"use strict";
1919

20-
// this code works the modern way
20+
// این کد از روش مدرن کار می‌کند
2121
...
2222
```
2323

24-
در مورد فانکشِن‌ها (روشی برای گروه‌بندی کردن دستورات) در آینده خواهیم آموخت.
25-
26-
در اینجا صرفا بدانید که می‌توانیم در ابتدای اکثر فانکشن‌ها `"use strict"` قرار دهیم تا قواعد مدرن صرفا بر روی کدهای داخل فانکشن اعمال شوند.
27-
24+
در مورد تابع‌ها (روشی برای گروه‌بندی دستورات، functions) در آینده خواهیم آموخت. در اینجا صرفا بدانید که می‌توانیم در ابتدای اکثر تابع‌ها `"use strict"` قرار دهیم تا قواعد مدرن صرفا بر روی کدهای داخل تابع اعمال شوند. اما معمولا برای تمام اسکریپت استفاده می‌شود.
2825

2926
````warn header="از بالا بودن عبارت \"use strict\" در کدهای خود مطمئن شوید"
30-
3127
این عبارت حتما باید در ابتدای اسکریپت شما باشد، در غیر این صورت حالت مدرن فعال نخواهد شد.
3228
Strict mode در اینجا فعال نیست :
3329
3430
```js no-strict
35-
alert("some code");
36-
// "use strict" below is ignored--it must be at the top
31+
alert("کد");
32+
// نادیده گرفته می‌شود. باید در ابتدا باشد "use strict"
3733
3834
"use strict";
3935
40-
// strict mode is not activated
36+
// فعال نشده است strict mode
4137
```
4238
43-
فقط Comment ها می‌توانند در بالای `"use strict"` قرار گیرند..
39+
فقط کامنت‌ها می‌توانند در بالای `"use strict"` قرار گیرند..
4440
````
4541

4642
```warn header="هیچ راه برای خنثی کردن `use strict` وجود ندارد"
47-
هیچ دستوری مانند `no use strict` وجود ندارد تا به موتور جاوا اسکریپت دستور دهد به روش قدیمی کار کند.
43+
هیچ دستوری مانند `no use strict` وجود ندارد تا به موتور جاوااسکریپت دستور دهد به روش قدیمی کار کند.
4844
زمانی‌که `use strict` را قرار می‌دهیم، راه برگشتی وجود ندارد.
49-
5045
```
5146
52-
## کنسول مرورگر
47+
## کنسول (console) مرورگر
5348
54-
در ادامه کار زمانیکه از کنسول مرورگر خود برای اجرای کدها استفاده می‌کنید در نظر داشته باشید که این کنسول به طور پیش فرض از `use strict` استفاده نمی‌کند.
55-
گاهی اوقات زمانیکه وجود `use strict` تفاوتی ایجاد می‌کند، استفاده از کنسول مرورگر نتایج اشتباهی به شما خواهد داد.
49+
در ادامه کار زمانی که از کنسول مرورگر خود برای اجرای کدها استفاده می‌کنید در نظر داشته باشید که این کنسول به طور پیش فرض از `use strict` استفاده نمی‌کند.
50+
گاهی اوقات زمانی که وجود `use strict` تفاوتی ایجاد می‌کند، استفاده از کنسول مرورگر نتایج اشتباهی به شما خواهد داد.
5651
حتی اگر از `key:Shift+Enter` برای وارد کردن عبارت `use strict` استفاده نمایید، نتیجه نخواهد داد.
5752
5853
راه حل قابل اتکا برای این موضوع آن است که به این شکل عبارت `use strict` را وارد نمایید :
@@ -61,20 +56,22 @@ alert("some code");
6156
(function() {
6257
'use strict';
6358
64-
// ...your code...
59+
// ... کد شما ...
6560
})()
6661
```
6762

68-
## همیشه از "use strict" استفاده کنید
63+
## آیا باید از "use strict" استفاده کنیم؟
64+
65+
این سوال ممکن است ساده بنظر برسد اما اینطور نیست.
66+
67+
شاید کسی پیشنهاد دهد که اسکریپت‌ها را همراه با `"use strict"` شروع کنید... اما می‌دانید چه چیزی جالب است؟
6968

70-
ما همچنان باید به آموختن تفاوت‌های use strict و default mode ادامه دهیم.
69+
جاوااسکریپت مدرن از «کلاس‌ها» و «ماژول‌ها» - ساختارهای پیشرفته زبان (ما قطعا به آن‌ها خواهیم رسید) - پشتیبانی می‌کند که به طور خودکار `use strict` را فعال می‌کنند. پس ما نیازی نیست که دستور `"use strict"` را در صورت استفاده از آن‌ها اضافه کنیم.
7170

72-
در بخش‌های بعدی که با قابلیت‌های زبان جاوا اسکریپت آشنا می‌شویم، به تفاوت‌های بین strict mode و "default" mode اشاره خواهیم کرد و خواهیم دید که use strict چطور زندگی ما را راحت‌تر کرده است.
71+
**پس اکنون `"use strict"` یک مهمان در ابتدای اسکریپت شما است. بعدا، زمانی که کد شما تماما شامل کلاس‌ها و ماژول‌ها می‌شود، می‌توانید آن را حذف کنید.**
7372

74-
تا به اینجا کافیست بدانید :
73+
از هم اکنون، ما باید به طور کلی درباره `use strict` بدانیم.
7574

75+
در فصل‌های بعدی، همانطور که خصوصیت‌های زبان را یاد می‌گیریم، تفاوت بین حالت‌های strict و قدیمی را خواهیم دید. خوشبختانه تعداد آن‌ها زیاد نیست و در واقع آن‌ها زندگی ما را بهتر می‌کنند.
7676

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

Comments
 (0)