Rumah > hujung hadapan web > tutorial js > Bagaimanakah Perisytiharan Fungsi Berkelakuan Berbeza dalam Persekitaran Ketat dan Tidak Ketat?

Bagaimanakah Perisytiharan Fungsi Berkelakuan Berbeza dalam Persekitaran Ketat dan Tidak Ketat?

Patricia Arquette
Lepaskan: 2024-10-29 19:38:02
asal
220 orang telah melayarinya

How Do Function Declarations Behave Differently in Strict and Non-Strict Environments?

Pengisytiharan Fungsi: Perbandingan Persekitaran Ketat dan Tidak Ketat

Pengendalian pengisytiharan fungsi di dalam pernyataan if/else telah berkembang dari semasa ke semasa , membawa kepada gelagat berbeza dalam penyemak imbas.

Mod Tegas ES5

Dalam mod ketat, pengisytiharan fungsi dalam blok tidak dibenarkan. Sebarang percubaan untuk mengisytiharkan fungsi dalam pernyataan if, seperti yang ditunjukkan dalam soalan, akan mengakibatkan ralat sintaks.

Mod Tidak Tegas ES5

Dalam bukan- mod ketat, tingkah laku pengisytiharan fungsi dalam blok adalah tidak konsisten. Pelayar dan enjin yang berbeza mempunyai tafsiran mereka sendiri. Sesetengah penyemak imbas, seperti Chrome, membenarkan fungsi itu diisytiharkan dan digunakan di luar skop yang dimaksudkan, manakala yang lain, seperti Firefox, menganggap fungsi tersebut sebagai berskop blok dan tidak tersedia di luar blok.

Sekat ES2015 -Fungsi Berskop

Sejak pengenalan ECMAScript 2015 (ES2015), pengisytiharan fungsi dalam blok kini secara eksplisit berskop blok. Ini bermakna fungsi yang diisytiharkan dalam pernyataan if hanya boleh diakses dalam blok if.

Dalam contoh yang diberikan, kod tersebut akan mengakibatkan ralat fungsi tidak ditentukan kerana fungsi a hanya diisytiharkan dalam skop jika pernyataan dan oleh itu tidak boleh diakses dalam skop global.

Pengesyoran

Untuk mentakrifkan fungsi secara bersyarat, adalah disyorkan untuk menggunakan ungkapan fungsi dan bukannya pengisytiharan fungsi. Ungkapan fungsi adalah berskop blok secara lalai dan boleh ditakrifkan dalam penyataan jika diperlukan tanpa menyebabkan kesan sampingan yang tidak diingini.

Atas ialah kandungan terperinci Bagaimanakah Perisytiharan Fungsi Berkelakuan Berbeza dalam Persekitaran Ketat dan Tidak Ketat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan