cb
ABCD
  • JS Танилцуулга
  • JS Хаана байрлах вэ
  • JS Гаралт /Output/
  • JS Мэдэгдэл /Statement/
  • JS Бичиглэл /Syntax/
  • JS Тайлбар /Comments/
  • JS Хувьсагч /Variables/
  • JS Оператор /Operators/
  • JS Арифметик оператор
  • JS Даалгаварын оператор
  • JS Өгөгдлийн төрөл
  • JS Функц /Function/
  • JS Обьект /Objects/
  • JS Тэмдэгт /Strings/
  • JS Тэмдэгтийн аргууд /String Methods/
  • Тоон утга /Numbers/
  • Тоон утга /Number methods/
  • JS Массив /Array/
  • JS Массив /Array Methods/
  • JS Ангилах /Sort/
  • JS массив давтах аргууд /Iteration/
  • JS Огноо /Dates/
  • JS огнооны формат
  • JS Get Date Methods
  • JS Set Date Methods
  • JS Математик объект
  • JS Cанамсаргүй тоо
  • JS Үнэн/ Худал Boolean утга
  • JS Харьцуулах ба Логик оператор
  • JS Нөхцөл шалгах / If Else
  • JS switch оператор
  • JS For давталт
  • JS For In давталт
  • Js For / Of давталт
  • JS While Давталт
  • JS Break ба Continue
  • JS Let Хувьсагч
  • JS Const Тогтмол хувьсагч
  • JS Төрөл хувиргалт
  • JS Алдаатай ажиллах Throw ба Try Catch
  • JS Гинжин хамаарал буюу Scope, Scope Chain
  • JS Hoisting буюу Өргөх
  • JS Хатуу горим буюу Strict Mode
  • JS this түлхүүр үг
тохиргоо
Толгой хэсэг
Хажуугийн самбар
Үндсэн контент
НЭВТРЭХ

JS Хатуу горим буюу Strict Mode

JavaScript-д Strict Mode буюу Хатуу горимд кодлох үед "use strict"; түлхүүр үгээр тодорхойлдог.


"use strict"-н удирдамж

"use strict"; удирдамж нь ESMAScript version 5 дээр шинээр бий болсон.

Энэ нь JavaScript-н өмнөх хувилбаруудад дэмждэггүй байсан илэрхийлэл юм.

"use strict"; зорилго нь кодыг хатуу горимд гүйцэтгэх ёстойг зааж байгаа юм.

Хатуу горимын хувьд та зарлаагүй хувьсагчийг ашиглаж чадахгүй.

Internet Explorer 9 ба түүнээс доош хувилбараас бусад орчин үеийн бүх хөтөч хатуу горим ашиглахыг дэмждэг.

Та кодын бүх хэсэгт хатуу горим ашиглаж болно. Ингэсэнээр зарлаагүй хувьсагч ашиглахаас хамгаалах бөгөөд эмх цэгцтэй код бичихэд туслах боломжтой юм.

"use strict" нь зүгээр л мөр тул IE 9 нь ойлгохгүй байсан ч алдаа өгөхгүй.


Хатуу горим зарлах

Хатуу горимыг кодын эхэнд эсвэл функцийн эхэнд 'use strict'; эсвэл "use strict"; гэж зарлана.

Кодын эхэнд зарлавал ГЛОБАЛ орчны бүх кодод хамаарна, харин функц дотор зарлавал локал орчинд хамаарах болно.

Жишээ 

<script>
'use strict';
z = 91; /* Энэ тохиолдолд алдаа өгнө z -г зарлаагүй байна. */
</script>

Үр дүнг харах

Жишээ

<script>
'use strict';
myFunc();

function myFunc() {
z = 91; /* Энэ тохиолдолд алдаа өгнө z -г зарлаагүй байна. Функцийг ГЛОБАЛ орчноос дуудаж байна */
}
</script>

Үр дүнг харах

Хатуу горимыг функц дотор зарлаж үзье. Энэ тохиолдолд зөвхөн локал орчинд ажиллах болно.

Жишээ

<script>
n = 91;
myFunc();

function myFunc() {
'use strict';
z = 91; /* Энэ тохиолдолд алдаа өгнө z -г зарлаагүй байна. */
}
</script>

Үр дүнг харах

Яагаад хатуу горим гэж?

Хатуу горимыг ашиглахад хялбар, мөн кодод аюулгүй байдлыг хангаж ажилладаг.
Хатуу горим нь өмнө нь бичигдсэн кодын муу бичиглэлийг алдаа болгон өөрчилдөг.

Жишээлбэл: JavaScript нь хувьсагчийн нэрийг буруу бичих үед шинэ ГЛОБАЛ хувьсагч үүсгэдэг бол хатуу горимд энэ нь алдаа болдог. Өөрөөр хэлбэл ГЛОБАЛ орчин санамсаргүй шинэ хувьсагч үүсгэхгүй гэсэн үг юм.


Хатуу горим юуг зөвшөөрөхгүй вэ?

Хувьсагчийг зарлахгүйгээр ашиглахыг хориглоно.

'use strict';
z = 55; /* Зарлаагүй хувьсагч ашиглаж болохгүй*/

Объект нь бас хувьсагч тул мөн адил зарлахгүйгээр ашиглахыг хориглоно.

'use strict';
z = {o1: 50, o2: 100}; /* Зарлаагүй хувьсагч ашиглаж болохгүй*/

Функц устгахыг зөвшөөрөхгүй.

'use strict';
function z(p1, p2) {};
delete z; /* Функц устгаж болохгүй*/

Параметрийн нэр ижил байхыг зөвшөөрөхгүй

'use strict';
function z(p1, p1) {}; /* Ижил параметр дамжуулж болохгүй*/

Стандарт бус тоог зөвшөөрөхгүй

'use strict';
var x = 050; /* Стандарт бус тоо болохгүй*/

Стандарт бус тэмдэгт тоог зөвшөөрөхгүй

'use strict';
var x = \050; /* Стандарт бус тэмдэгт, тоо болохгүй*/

Зөвхөн унших эрхтэй объектод бичих үйлдэл хийхийг хориглоно

'use strict';
var obj = {};
Object.defineProperty(obj, "z", {value:0, writable:flase});

obj.z = 44; /* Объектод бичиж болохгүй*/

Зөвхөн авах эрхтэй объектод бичих үйлдэл хийхийг хориглоно

'use strict';
var obj = {get z() {return 0} };

obj.z = 44; /* Объектод бичиж болохгүй*/

Undeletable property -г утсгахыг хориглоно

'use strict';
delete Object.prototype;

eval болон arguments нэртэй хувьсагч зарлахыг хориглоно

'use strict';
var eval = 55; /* eval нэртэй хувьсагч байж болохгүй*/

'use strict';
var arguments = 55; /* arguments нэртэй хувьсагч байж болохгүй*/

with statement ашиглахыг хориглоно

'use strict';
var eval = 55; /* eval нэртэй хувьсагч байж болохгүй*/

Аюулгүй байдлын хүрээнд eval() функц ашиглан хувьсагч үүсгэхийг хориглоно

'use strict';
eval ("var x = 2");
alert (x); /* Хувьсагч зарлах болохгүй*/

this түлхүүр үг нь хатуу горимд өөр өөрөөр ажилладаг. Дараагийн хичээлээр this түлхүүр үгийг үзэх болно.


"use strict"-д түлхүүр үгсийг хувьсагчийн нэр болгон ашиглах боломжгүй

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield

Сэтгэгдэлүүд

Контентын нэр
JS Танилцуулга
JS Хаана байрлах вэ
JS Гаралт /Output/
JS Мэдэгдэл /Statement/
JS Бичиглэл /Syntax/
JS Тайлбар /Comments/
JS Хувьсагч /Variables/
JS Оператор /Operators/
JS Арифметик оператор
JS Даалгаварын оператор
JS Өгөгдлийн төрөл
JS Функц /Function/
JS Обьект /Objects/
JS Тэмдэгт /Strings/
JS Тэмдэгтийн аргууд /String Methods/
Тоон утга /Numbers/
Тоон утга /Number methods/
JS Массив /Array/
JS Массив /Array Methods/
JS Ангилах /Sort/
JS массив давтах аргууд /Iteration/
JS Огноо /Dates/
JS огнооны формат
JS Get Date Methods
JS Set Date Methods
JS Математик объект
JS Cанамсаргүй тоо
JS Үнэн/ Худал Boolean утга
JS Харьцуулах ба Логик оператор
JS Нөхцөл шалгах / If Else
JS switch оператор
JS For давталт
JS For In давталт
Js For / Of давталт
JS While Давталт
JS Break ба Continue
JS Let Хувьсагч
JS Const Тогтмол хувьсагч
JS Төрөл хувиргалт
JS Алдаатай ажиллах Throw ба Try Catch
JS Гинжин хамаарал буюу Scope, Scope Chain
JS Hoisting буюу Өргөх
JS Хатуу горим буюу Strict Mode
JS this түлхүүр үг
ABCD.mn ©

Нөхцөл & Шаардлага

1. General

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ultrices, justo vel imperdiet gravida, urna ligula hendrerit nibh, ac cursus nibh sapien in purus. Mauris tincidunt tincidunt turpis in porta. Integer fermentum tincidunt auctor.

2. Account

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ultrices, justo vel imperdiet gravida, urna ligula hendrerit nibh, ac cursus nibh sapien in purus. Mauris tincidunt tincidunt turpis in porta. Integer fermentum tincidunt auctor.

3. Service

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ultrices, justo vel imperdiet gravida, urna ligula hendrerit nibh, ac cursus nibh sapien in purus. Mauris tincidunt tincidunt turpis in porta. Integer fermentum tincidunt auctor.

4. Payments

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ultrices, justo vel imperdiet gravida, urna ligula hendrerit nibh, ac cursus nibh sapien in purus. Mauris tincidunt tincidunt turpis in porta. Integer fermentum tincidunt auctor.