Strict Mode JavaScript

Strict mode berguna untuk mengubah beberapa peraturan yang ada di dalam JavaScript menjadi lebih ketat.

Salah satu aturan yang berubah dengan aktifnya strict mode yaitu variable yang belum di declare tidak bisa digunakan.

Syntax

"use strict";

Catatan

Strict mode baru diperkenalkan pada JaVaScript versi 1.8.5 (ECMSScript V5).

Berikut ini adalah beberapa versi browser minimal yang bisa menggunakan strict mode: IE V10, Firefox V4, Chrome V13, Safari V5.1.

Menggunakan strict mode

Untuk bisa menggunakan strict mode, tuliskan ["use strict";] pada bagian awal file atau bagian awal function.

Bila strict mode dituliskan pada bagian awal file maka strict mode berfungsi secara global yang artinya semua code akan berada dalam strict mode.

Bila strict mode dituliskan pada bagian awal function maka strict mode berfungsi secara local yang artinya semua code di dalam function tersebut akan berada dalam strict mode.

Contoh global

Berikut ini adalah contoh penggunaan strict mode secara global:

Code JavaScript 1:

<script>
"use strict";

a = 2.54;
document.write(a);
</script>

Biasanya sebuah variable bisa digunakan tanpa di declare terlebih dahulu, tetapi dengan aktifnya strict mode maka sebuah variable yang belum di declare tidak bisa digunakan.

Pada code di atas kita menggunakan variable [a] yang belum di declare sehingga hasilnya adalah error.

Bila kamu ingin melihat pesan error dari code yang ada di atas kamu bisa menggunakan try…catch statement atau gunakan debugger pada browsermu.

Berikut ini kita akan menggunakan try catch statement untuk melihat pesan error yang dihasilkan dari code di atas:

Code javaScript 2:

<script>
"use strict";

try {
  a = 2.54;
  document.write(a);
} catch(e) {
  document.write(e);
};
</script>

Hasil code javaScript 2:

ReferenceError: assignment to undeclared variable a

Contoh local

Berikut ini adalah contoh penggunaan strict mode secara local:

Code JavaScript 3:

<script>
function strict_1() {
  "use strict";
  a = 2.54;
  document.write(a);
};

strict_1();
</script>

Manfaat strict mode

Pada JavaScript normal biasanya rangkaian code yang ditulis dengan jelek masih bisa digunakan tetapi setelah strict mode diaktifkan maka rangkaian code yang ditulis dengan jelek tersebut akan menghasilkan error.

Sebagai contoh:

Salah menulis nama sebuah variable dalam keadaan normal akan mengakibatkan terciptanya sebuah variable baru.

Dalam keadaan strict mode, salah menulis nama variable akan mengakibatkan error. Manfaatnya adalah strict mode akan menghindarkan terbentuknya variable baru secara tidak sengaja.

Tidak diperbolehkan dalam strict mode

Berikut ini adalah beberapa keadaan yang tidak diperbolehkan saat strict mode aktif (menghasilkan error):

1. Menggunakan sebuah variable yang belum di declare terlebih dahulu:

a = 2.54;

2. Menggunakan delete statement terhadap sebuah variable, function, atau argument:

var a = 2.54;
delete a;

3. Membuat nama property yang sama:

var a = {p1:2, P2:3};

4. Membuat parameter yang sama:

function a(p1,p2){};

5. Menggunakan angka octal secara literal atau menggunakan escape character terhadap angka octal:

var a = 010;
var b = \010;

6. Menggunakan writing terhadap read-only property:

var obj = {};
obj.defineProperty(obj, "a", {value:0, writable:false});

obj.a = 2.54;

7. Menggunakan writing terhadap get-only property:

var obj = {get a() {return 0} };

obj.a = 2.54;

8. Menggunakan delete terhadap property yang tidak bisa di hapus:

delete Object.prototype;

9. [eval] tidak boleh digunakan sebagai nama variable:

var eval = 2.54;

10. [arguments] tidak boleh digunakan sebagai nama variable:

var arguments = 2.54;

11. with statement tidak boleh dipergunakan:

with (Math){
  a = cos(2);
};

12. Variable yang dibuat di dalam eval() function tidak boleh dipergunakan:

eval("var a = 10");
a = 2;

13. Membuat function di dalam sebuah statement:

var nama_array = [1, 2, 3];
var index = null;
for (index in nama_array) {
  function nama_function() {};
};

14. Beberapa keyword berikut tidak diijinkan dalam strict mode:

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

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>