أحدث البرامج التعليمية وتطوير الشبكة
×

JS البرنامج التعليمي

JS الصفحة الرئيسية JS المقدمة JS ألى أين JS الناتج JS بناء الجملة JS البيانات JS تعليقات JS المتغيرات JS مشغلي JS علم الحساب JS مهمة JS أنواع البيانات JS وظائف JS الأجسام JS نطاق JS أحداث JS سلاسل JS طرق سلسلة JS أرقام JS طرق عدد JS الرياضيات JS التمور JS تاريخ تنسيقات JS تاريخ طرق JS المصفوفات JS طرق مجموعة JS القيم المنطقية JS مقارنات JS الظروف JS تحول JS حلقة غيرمنتهية For JS حلقة بينما JS استراحة JS نوع التحويل JS التعبير العادي JS أخطاء JS التصحيح JS الرفع JS الوضع الصارم JS دليل الاناقة JS أفضل الممارسات JS الأخطاء JS أداء JS الكلمات المحجوزة JS JSON

JS أشكال

أشكال التحقق من صحة API أشكال

JS موضوع

تعريفات الكائن خصائص الكائن طرق كائن نماذج الكائن

JS وظائف

تعاريف وظيفة وظيفة المعلمات وظيفة الاحتجاج الإغلاق وظيفة

JS HTML DOM

DOM مقدمة DOM أساليب DOM وثيقة DOM عناصر DOM HTML DOM CSS DOM الرسوم المتحركة DOM أحداث DOM EventListener DOM ملاحة DOM العقد DOM Nodelist

JS المتصفح BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS أمثلة

JS أمثلة JS HTML DOM JS HTML إدخال JS HTML الأجسام JS HTML أحداث JS المتصفح JS اختبار قصير JS ملخص

JS المراجع

JavaScript الأجسام HTML DOM الأجسام


 

JavaScript استخدام صارمة


"use strict"; يعرف أن شفرة جافا سكريبت يجب أن يعدم في "وضع صارم".


و "use strict" التوجيه

و "use strict" التوجيه هو جديد في جافا سكريبت 1.8.5 (ECMAScript version 5) .

أنه ليس بيانا، ولكن التعبير الحرفي، وتجاهلها من قبل الإصدارات السابقة من جافا سكريبت.

والغرض من "use strict" هو الإشارة إلى أن رمز يجب أن يعدم في "وضع صارم".

مع الوضع الدقيق للكلمة، لا يمكنك، على سبيل المثال، استخدام المتغيرات غير معلنة.

ويدعم وضع الصارم في:
IE من الإصدار 10. فايرفوكس من الإصدار 4.
Chrome من الإصدار 13. Safari من الإصدار 5.1.
Opera من الإصدار 12.


معلنا الوضع الدقيق

وأعلن وضع الصارم بإضافة "use strict"; إلى بداية برنامج نصي أو وظيفة.

أعلن في بداية السيناريو، فقد النطاق العالمي (كافة التعليمات البرمجية في البرنامج النصي سيتم تنفيذ في وضع صارمة):

مثال

"use strict";
x = 3.14;       // This will cause an error (x is not defined)
انها محاولة لنفسك »

مثال

"use strict";
myFunction();

function myFunction() {
    y = 3.14;   // This will also cause an error (y is not defined)
}
انها محاولة لنفسك »

أعلن في الداخل وظيفة، لديها مجالا المحلي (فقط رمز داخل وظيفة في وضع صارمة):

x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
   "use strict";
    y = 3.14;   // This will cause an error (y is not defined)
}
انها محاولة لنفسك »

و "use strict"; بناء الجملة

بناء الجملة، لإعلان وضع صارم، تم تصميمها لتكون متوافقة مع الإصدارات القديمة من جافا سكريبت.

جمع حرفي رقمي (4 + 5؛) أو سلسلة حرفية ("John Doe";) في برنامج جافا سكريبت ليس له آثار جانبية. ببساطة يجمع إلى متغير غير موجود ويموت.

حتى "use strict" . يهم فقط إلى المجمعين جديدة أن "يفهم" معنى ذلك.


لماذا الوضع الدقيق؟

وضع صارم يجعل من السهل لكتابة "تأمين" جافا سكريبت.

يتغير وضع صارمة قبول سابقا "جملة سيئة" إلى الأخطاء الحقيقية.

على سبيل المثال، في جافا سكريبت طبيعي، الخطأ في الكتابة اسم متغير يخلق متغير عالمي جديد. في وضع دقيق، وهذا سوف رمي خطأ، مما يجعل من المستحيل لخلق قصد متغير عمومي.

في جافا سكريبت العادي، وسوف المطور لا تتلقى أي ردود فعل الخطأ تعيين قيم لخصائص غير قابل للكتابة.

في الوضع الدقيق للكلمة، أي الاحالة الى الممتلكات غير قابل للكتابة، وهي خاصية جالبة الوحيد، وهي غير موجودة الملكية، متغير غير موجود، أو كائن غير موجود، ورمي خطأ.


غير مسموح في الوضع الصارم

باستخدام متغير، دون أن تعلن ذلك، لا يسمح:

"use strict";
x = 3.14;                // This will cause an error (x is not defined)

انها محاولة لنفسك »

الكائنات هي المتغيرات أيضا.

باستخدام كائن، دون أن تعلن ذلك، لا يسمح:

"use strict";
x = {p1:10, p2:20};      // This will cause an error (x is not defined)

انها محاولة لنفسك »

حذف متغير (أو كائن) غير مسموح به.

"use strict";
var x = 3.14;
delete x;                // This will cause an error

انها محاولة لنفسك »

حذف وظيفة غير مسموح به.

"use strict";
function x(p1, p2) {};
delete x;                // This will cause an error 

انها محاولة لنفسك »

تكرار اسم المعلمة غير مسموح به:

"use strict";
function x(p1, p1) {};   // This will cause an error

انها محاولة لنفسك »

لا يسمح ثماني الحرفية الرقمية:

"use strict";
var x = 010;             // This will cause an error

انها محاولة لنفسك »

لا يسمح للهروب الشخصيات:

"use strict";
var x = \010;            // This will cause an error

انها محاولة لنفسك »

الكتابة إلى خاصية للقراءة فقط لا يسمح:

"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // This will cause an error

انها محاولة لنفسك »

الكتابة إلى خاصية الحصول الوحيد هو عدم السماح لل:

"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // This will cause an error

انها محاولة لنفسك »

حذف خاصية undeletable وهذا غير مسموح به:

"use strict";
delete Object.prototype; // This will cause an error

انها محاولة لنفسك »

السلسلة "وحدة التقييم" لا يمكن أن تستخدم متغير:

"use strict";
var eval = 3.14;         // This will cause an error

انها محاولة لنفسك »

و"الحجج" سلسلة لا يمكن أن تستخدم متغير:

"use strict";
var arguments = 3.14;    // This will cause an error

انها محاولة لنفسك »

لا يسمح للمع البيان:

"use strict";
with (Math){x = cos(2)}; // This will cause an error

انها محاولة لنفسك »

لأسباب أمنية، eval() لا يسمح لإنشاء متغيرات في نطاق من الذي كان يطلق عليه:

"use strict";
eval ("var x = 2");
alert (x);               // This will cause an error

انها محاولة لنفسك »

في المكالمات وظيفة مثل f() ، وكانت هذه القيمة الكائن العالمي. في وضع دقيق، وغير معروف الآن ذلك.


برهان المستقبل!

لا يسمح للكلمات محفوظة في المستقبل في وضع دقيق. هؤلاء هم:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
"use strict";
var public = 1500;      // This will cause an error

انها محاولة لنفسك »


احترس!

احترس!

و "use strict" غير المعترف بها التوجيه فقط في بداية برنامج نصي أو وظيفة.