English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ECMAScript 5中引入的JavaScript严格模式是选择加入 JavaScript受限变体的一种方式。
严格模式不仅仅是一个子集:它有意地具有与普通代码不同的语义。
严格模式使编写“安全” JavaScript更加容易。
严格模式将以前接受的“错误语法”更改为实际错误。
在严格模式下,例如,您不能使用未声明的变量。
严格模式是通过"use strict";在脚本或函数的开头添加来声明的。
要为整个脚本调用严格模式,在任何其他任何声明之前,输入语句“use strict” ::
"use strict"; str = \اختبار النظر في‹/›
لإجراء مكالمة وظيفة صارمة، يرجى وضع جملة "use strict"; في جسم الوظيفة، ثم في أي جملة أخرى قبل ذلك:
function myFunc() { // جملة وضوح مستوى الوظيفة الشديد "use strict"; str = "大家好,我是严格模式函数!"; // سيؤدي إلى خطأ return str; }اختبار النظر في‹/›
يمكن أن يساعد الوضع الصارم في كتابة أكواد أكثر نظافة، مثل منع استخدام المتغيرات غير المعلنة.
يمكن التعرف على أوامر "use strict" فقط في بداية البرنامج أو الوظيفة.
كلا الجملين باستخدام الأسهم والنواقص قابلاً للقبول ('use strict'; أو "use strict";).
كما تعلمون، في الوضع الصارم، يجب أن يتم إعلان جميع المتغيرات.
إذا قمت بتعيين قيمة لمعرف ليس متغيرًا معلنًا، فإن ذلك سيؤدي إلى إطلاق ReferenceError:
"use strict"; x = 5; // ReferenceError: x لم يتم تعريفهااختبار النظر في‹/›
لا يُسمح باستخدام العناصر غير المعلنة (العناصر هي متغيرات أيضًا):
"use strict"; coord = {x: 10, y: 20}; // ReferenceError: coord لم يتم تعريفهااختبار النظر في‹/›
في الوضع الصارم، إذا حاولت حذف متغير، فسيتم إطلاق خطأ في النص:
"use strict"; var msg = "Hello World"; delete msg; // SyntaxErrorاختبار النظر في‹/›
بالمثل، عند محاولة حذف وظيفة في الوضع الصارم، سيظهر خطأ في النص:
"use strict"; function sum(a, b) { return a + b; } delete sum; // SyntaxErrorاختبار النظر في‹/›
في الوضع الصارم، لا يُسمح بإعادة استخدام اسم المعامل:
"use strict"; function square(a, a) { // SyntaxError return a * a; }اختبار النظر في‹/›
في الوضع الصارم، لا يُسمح بإدخال الخاصية القابلة للقراءة فقط:
"use strict"; var person = {name: "Akash", age: 22}; Object.defineProperty(person, "gender", {value: "male", writable: false}); person.gender = "female"; // TypeErrorاختبار النظر في‹/›
في الوضع الصارم، لا يُسمح باستخدام جملة with:
"use strict"; with (Math) { x = sqrt(25); }; // SyntaxErrorاختبار النظر في‹/›
في الوضع الصارم، لا يُسمح باستخدام الأرقام الثمانية:
"use strict"; var x = 010; // SyntaxErrorاختبار النظر في‹/›
لأسباب أمنية،eval()لا يُسمح بإنشاء متغيرات في نطاق الدعوة الخاصة بها:
"use strict"; eval("var x = 10;"); console.log(x); // ReferenceError: x variable is not definedاختبار النظر في‹/›
لا يمكن استخدام كلمة "eval" كمعرف (اسم متغير):
"use strict"; var eval = "oldtoolbag.com";// SyntaxErrorاختبار النظر في‹/›
لا يمكن استخدام كلمة "arguments" كمعرف (اسم متغير):
"use strict"; var arguments = "oldtoolbag.com";// SyntaxErrorاختبار النظر في‹/›
قد تقوم إصدارات ECMAScript المستقبلية بإدخال لغات جديدة، حيث يتم تطبيق الوضع الصارم في ES5 لتطبيق بعض القيود لتسهيل الانتقال.
من المرجح أن تكون التغييرات بعضها البعض أسهل إذا تم منع هذه التغييرات الأساسية في الوضع الصارم.
في الوضع الصارم، قائمة المعرفات التالية تصبح كلمات مفتاحية محفوظة:
implements
interface
let
package
private
protected
public
static
yield
"use strict"; var package = true; // This will cause an errorاختبار النظر في‹/›