Tidak bisa digunakan dalam javascript

Anda dapat menggunakan mode ketat di semua program Anda. Ini membantu Anda menulis kode pembersih, seperti mencegah Anda menggunakan variabel yang tidak dideklarasikan

"use strict" hanyalah sebuah string, jadi IE 9 tidak akan membuat kesalahan meskipun tidak memahaminya


Mendeklarasikan Mode Ketat

Mode ketat dideklarasikan dengan menambahkan "gunakan ketat";

Dideklarasikan di awal skrip, ia memiliki cakupan global (semua kode dalam skrip akan dieksekusi dalam mode ketat)

Contoh

"gunakan ketat";
x = 3. 14;

Cobalah sendiri "

Contoh

"gunakan ketat";
myFunction();

fungsi myFunction() {
y = 3. 14;
}

Cobalah sendiri "

Dideklarasikan di dalam suatu fungsi, ia memiliki cakupan lokal (hanya kode di dalam fungsi yang dalam mode ketat)

x = 3. 14;
myFunction();

fungsi myFunction() {
"gunakan ketat";
y = 3. 14;
}

Cobalah sendiri "



The "gunakan ketat";

Sintaks, untuk mendeklarasikan mode ketat, dirancang agar kompatibel dengan JavaScript versi lama

Mengkompilasi literal numerik (4 + 5;) atau string literal ("John Doe";) dalam program JavaScript tidak memiliki efek samping. Itu hanya mengkompilasi ke variabel yang tidak ada dan mati

Jadi "use strict"; hanya penting bagi kompiler baru yang "mengerti" artinya


Mengapa Mode Ketat?

Mode ketat memudahkan untuk menulis JavaScript "aman".

Perubahan mode ketat yang sebelumnya menerima "sintaks buruk" menjadi kesalahan nyata

Sebagai contoh, dalam JavaScript normal, salah ketik nama variabel membuat variabel global baru. Dalam mode ketat, ini akan menimbulkan kesalahan, sehingga tidak mungkin membuat variabel global secara tidak sengaja

Dalam JavaScript normal, pengembang tidak akan menerima umpan balik kesalahan yang menetapkan nilai ke properti yang tidak dapat ditulis

Dalam mode ketat, penugasan apa pun ke properti yang tidak dapat ditulis, properti khusus pengambil, properti yang tidak ada, variabel yang tidak ada, atau objek yang tidak ada, akan menimbulkan kesalahan


Tidak Diizinkan dalam Mode Ketat

Menggunakan variabel, tanpa mendeklarasikannya, tidak diperbolehkan

Objek juga merupakan variabel

Menggunakan objek, tanpa mendeklarasikannya, tidak diperbolehkan

Menghapus variabel (atau objek) tidak diperbolehkan

"gunakan ketat";
misalkan x = 3. 14;
hapus x;

Cobalah sendiri "

Menghapus fungsi tidak diperbolehkan

"gunakan ketat";
fungsi x(p1, p2) {};
hapus x;

Cobalah sendiri "

Menduplikasi nama parameter tidak diperbolehkan

Literal numerik oktal tidak diperbolehkan

Karakter escape oktal tidak diperbolehkan

Menulis ke properti hanya-baca tidak diperbolehkan

"gunakan ketat";
const obj = {};
Obyek. defineProperty(obj, "x", {value. 0, dapat ditulis. Salah});

keberatan. x = 3. 14;

Cobalah sendiri "

Menulis ke properti get-only tidak diperbolehkan

"gunakan ketat";
const obj = {dapatkan x() {kembalikan 0} };

keberatan. x = 3. 14;

Cobalah sendiri "

Menghapus properti yang tidak dapat dihapus tidak diperbolehkan

Kata eval_ tidak dapat digunakan sebagai variabel

Kata arguments_ tidak dapat digunakan sebagai variabel

Pernyataan with tidak diperbolehkan

Untuk alasan keamanan, eval() tidak diperbolehkan untuk membuat variabel dalam ruang lingkup dari yang disebut

Dalam mode ketat, variabel tidak dapat digunakan sebelum dideklarasikan

"gunakan ketat";
eval ("x = 2");
waspada (x);

Cobalah sendiri "

Dalam mode ketat, eval() tidak dapat mendeklarasikan variabel menggunakan kata kunci var

"gunakan ketat";
eval ("var x = 2");
waspada (x);

Cobalah sendiri "

eval() tidak dapat mendeklarasikan variabel menggunakan kata kunci let

eval ("biarkan x = 2");
waspada (x);

Cobalah sendiri "

Kata kunci this dalam fungsi berperilaku berbeda dalam mode ketat

Kata kunci this mengacu pada objek yang disebut fungsi

Jika objek tidak ditentukan, fungsi dalam mode ketat akan mengembalikan "use strict"1 dan fungsi dalam mode normal akan mengembalikan objek global (jendela)

Apa itu '#' dalam JavaScript?

# artinya "ID" . Itu mencari DOM untuk elemen dengan ID `searchTerm.

Apa yang digunakan JavaScript sebagai gantinya == dan. =?

Apa yang digunakan javascript selain == dan. =? . Subkumpulan tidak termasuk operator koma, operator bitwise, atau operator ++ dan — . Itu juga melarang == dan. = karena konversi jenis yang mereka lakukan, membutuhkan penggunaan === dan. ==

Apa yang tidak bisa dilakukan di JavaScript?

Yang Tidak Dapat Dilakukan Javascript .
Itu Tidak Dapat Menulis ke File di Server Tanpa Bantuan Script Sisi Server
Itu Tidak Dapat Membaca Dari atau Menulis ke File di Klien
Itu Tidak Dapat Mengakses Halaman Web yang Dihosting di Domain Lain
Itu Tidak Dapat Melindungi Sumber atau Gambar Halaman Anda

Bagaimana cara mematikan mode ketat di JavaScript?

Tidak, Anda tidak dapat menonaktifkan mode ketat per fungsi . Perhatikan bagaimana kita dapat mendefinisikan fungsi di luar kode yang ketat dan kemudian meneruskannya ke dalam fungsi yang ketat. Anda dapat melakukan sesuatu yang serupa dalam contoh Anda - memiliki objek dengan fungsi "ceroboh", lalu meneruskan objek itu ke fungsi ketat yang langsung dipanggil.