cari
Rumahhujung hadapan webSoal Jawab bahagian hadapanApakah perbezaan antara skop es5 dan es6

Perbezaan: Terdapat hanya dua jenis skop dalam es5: skop global dan skop fungsi, manakala terdapat tiga jenis skop dalam es6: skop global, skop fungsi dan skop peringkat blok, dengan yang baharu ditambah Skop peringkat blok. Peranan skop peringkat blok: Ia boleh menyelesaikan masalah pembolehubah luar yang ditimpa disebabkan oleh promosi pembolehubah skop dalaman, dan menghalang pembolehubah yang digunakan untuk pengiraan gelung daripada bocor ke dalam pembolehubah global.

Apakah perbezaan antara skop es5 dan es6

Persekitaran pengendalian tutorial ini: sistem windows7, ECMAScript versi 6, komputer Dell G3

Skop es5 dan es6 Perbezaan:

  • Hanya terdapat dua jenis skop dalam es5: skop global dan skop fungsi

  • Skop dalam es6 Terdapat tiga jenis: skop global, skop fungsi dan skop peringkat blok

Hanya terdapat skop global dan skop fungsi dalam Es5

ES5 Gunakan var untuk isytiharkan pembolehubah. Pembolehubah yang diisytiharkan dengan var mungkin wujud dalam skop global atau dalam skop tempatan adalah seperti berikut

1 Tiga kes mempunyai skop global

a. Pembolehubah yang diisytiharkan di luar fungsi mempunyai skop global

b c. Sifat objek tetingkap mempunyai skop global



2. Skop setempat (skop fungsi)

Skop pembolehubah dalam badan fungsi

Pembolehubah yang ditakrifkan dalam fungsi hanya boleh diakses dalam fungsi


  • Contoh

Skop peringkat blok baharu dalam Es6

  var a = 1;
  console.log(a);// 1                  此处a为全局变量,在全局作用域下都可访问得到

  b = 2
  console.log(b); // 2                 此处b未被var定义,而是被直接赋值,自动声明为全局变量
  
  function fun() {
    var c = 3;
    console.log(c);//3                 此处c存在在函数作用域中,仅在函数fun中可访问
  }
  fun()
  console.log(c);// undefined         全局作用域下访问函数作用域中的变量c,得到undefined

Skop peringkat blok boleh difahami secara ringkas sebagai: kandungan yang disertakan dalam kurungan kerinting {}, Ia boleh menjadi skopnya sendiri. Pembolehubah dalam skop peringkat blok diisytiharkan oleh let dan const

Mengapa skop peringkat blok diperlukan?

1 Selesaikan masalah bahawa promosi pembolehubah skop dalaman menyebabkan pembolehubah luar ditimpa

Hasil pelaksanaan

var i = 5;
function fun(){
  console.log(i);//undefined
  if(true){
    var i = 6
    console.log(i);//6
  }
}
fun()
Pembolehubah i dalam keseronokan fungsi diisytiharkan menggunakan var Ini melibatkan isu promosi pembolehubah Yang dipanggil promosi pembolehubah bermaksud pengisytiharan fungsi dan pengisytiharan pembolehubah sentiasa "dinaikkan pangkat" ke bahagian atas. badan kaedah oleh jurubahasa. Jadi i di sini adalah bersamaan dengan mencapai bahagian atas fungsi fun terlebih dahulu, tetapi tugasan masih dilakukan apabila i = 6. Kod di atas sebenarnya bersamaan dengan:


Apakah perbezaan antara skop es5 dan es6Apabila i yang pertama adalah Semasa mencetak , i hanya diisytiharkan tetapi tidak diberikan (i diberikan nilai 6 dalam pernyataan if), jadi i yang dicetak pertama tidak ditentukan, dan cetakan i kedua ialah 6

var i = 5;
function fun(){
  var i;
  console.log(i);
  if(true){
    i = 6
    console.log(i)
  }
}
fun()
Jika anda menggunakan let untuk mengisytiharkan pembolehubah i dalam jika, pendakap kerinting { } di mana pernyataan if terletak akan membentuk skop peringkat blok, dan pembolehubah yang diisytiharkan dalam skop ini akan "terikat" di kawasan ini, dan tidak akan Ia terus terjejas oleh pengaruh luaran (iaitu zon mati sementara), jadi keluaran i pertama apabila melaksanakan fungsi keseronokan ialah var i=5 dalam skop global, dan output i dalam pernyataan if dibiarkan i diisytiharkan dalam skop peringkat blok =6

var i = 5;
function fun(){
  console.log(i);//5
  if(true){
    let i = 6
    console.log(i);//6
  }
}
fun()
2. Halang pembolehubah yang digunakan untuk pengiraan gelung daripada bocor ke dalam pembolehubah global

Kod di atas mengisytiharkan pembolehubah i dengan var untuk gelung, keadaan ideal Perkara berikut i seharusnya hanya sah dalam badan gelung, tetapi i di sini didedahkan dalam skop global, jadi nilai i masih boleh diakses dalam skop global selepas gelung berakhir

for(var i = 0; i < 3; i++){
  doSomething()
}
console.log(i)//3
Untuk contoh Gunakan let dengan skop peringkat blok untuk mengisytiharkan i Pembolehubah i yang diisytiharkan di sini hanya sah dalam kurungan kerinting untuk gelung { }. >

Ciri skop peringkat blok
for(let i = 0; i < 3; i++){
  console.log(i)
}
console.log(i)//undefined

1 Pembolehubah yang diisytiharkan oleh let hanya sah dalam skop (pada masa ini dalam kurungan kerinting), jadi Sebarang sarang. dibenarkan, dan setiap tahap adalah skop yang berasingan 2 Skop dalam boleh mempunyai nama yang sama dengan pembolehubah skop luar (tiada skop digunakan tanpa mengganggu antara satu sama lain)

3. let Hanya boleh wujud pada tahap atas skop semasa

Nota: dalam { } in if pernyataan dan untuk pernyataan, jika terdapat pembolehubah/pemalar yang diisytiharkan oleh let atau const, skop { } juga tergolong kepada skop blok

Contoh tentang skop

[Cadangan berkaitan:

tutorial video javascript
,

bahagian hadapan web

]
<script type="text/javascript">
	{
		var a = 1;
		console.log(a); // 1
	}
	console.log(a); // 1
	// 可见,通过var定义的变量可以跨块作用域访问到。

	(function A() {
		var b = 2;
		console.log(b); // 2
	})();
	// console.log(b); // 报错,
	// 可见,通过var定义的变量不能跨函数作用域访问到

	if(true) {
		var c = 3;
	}
	console.log(c); // 3
	for(var i = 0; i < 4; i++) {
		var d = 5;
	};
	console.log(i);	// 4   (循环结束i已经是4,所以此处i为4)
	console.log(d); // 5
	// if语句和for语句中用var定义的变量可以在外面访问到,
	// 可见,if语句和for语句属于块作用域,不属于函数作用域。

	{
		var a = 1;
		let b = 2;
		const c = 3;	
		
		{
			console.log(a);		// 1	子作用域可以访问到父作用域的变量
			console.log(b);		// 2	子作用域可以访问到父作用域的变量
			console.log(c);		// 3	子作用域可以访问到父作用域的变量

			var aa = 11;
			let bb = 22;
			const cc = 33;
		}
		
		console.log(aa);	// 11	// 可以跨块访问到子 块作用域 的变量
		// console.log(bb);	// 报错	bb is not defined
		// console.log(cc);	// 报错	cc is not defined
	}
</script>

Atas ialah kandungan terperinci Apakah perbezaan antara skop es5 dan es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
React Inside HTML: Mengintegrasikan JavaScript untuk laman web dinamikReact Inside HTML: Mengintegrasikan JavaScript untuk laman web dinamikApr 16, 2025 am 12:06 AM

Untuk mengintegrasikan React ke HTML, ikuti langkah -langkah ini: 1. Memperkenalkan React dan Reactdom dalam fail HTML. 2. Tentukan komponen React. 3. Mengadakan komponen ke dalam elemen HTML menggunakan ReactDom. Melalui langkah -langkah ini, halaman HTML statik dapat diubah menjadi pengalaman yang dinamik dan interaktif.

Faedah bertindak balas: prestasi, kebolehgunaan semula, dan banyak lagiFaedah bertindak balas: prestasi, kebolehgunaan semula, dan banyak lagiApr 15, 2025 am 12:05 AM

Populariti React termasuk pengoptimuman prestasi, penggunaan semula komponen dan ekosistem yang kaya. 1. Pengoptimuman prestasi mencapai kemas kini yang cekap melalui mekanisme maya dan mekanisme yang berbeza. 2. Penggunaan semula komponen mengurangkan kod pendua oleh komponen yang boleh diguna semula. 3. Ekosistem yang kaya dan aliran data sehala meningkatkan pengalaman pembangunan.

React: Membuat antara muka pengguna yang dinamik dan interaktifReact: Membuat antara muka pengguna yang dinamik dan interaktifApr 14, 2025 am 12:08 AM

React adalah alat pilihan untuk membina antara muka pengguna yang dinamik dan interaktif. 1) Komponen dan JSX membuat UI berpecah dan menggunakan semula mudah. 2) Pengurusan negeri dilaksanakan melalui cangkuk UseState untuk mencetuskan kemas kini UI. 3) Mekanisme pemprosesan acara bertindak balas terhadap interaksi pengguna dan meningkatkan pengalaman pengguna.

Rangka Kerja Backend: PerbandinganRangka Kerja Backend: PerbandinganApr 13, 2025 am 12:06 AM

React adalah rangka kerja front-end untuk membina antara muka pengguna; Rangka kerja back-end digunakan untuk membina aplikasi sisi pelayan. React menyediakan kemas kini UI yang komponen dan cekap, dan Rangka Kerja Backend menyediakan penyelesaian perkhidmatan backend lengkap. Apabila memilih timbunan teknologi, keperluan projek, kemahiran pasukan, dan skalabiliti harus dipertimbangkan.

HTML dan React: Hubungan antara markup dan komponenHTML dan React: Hubungan antara markup dan komponenApr 12, 2025 am 12:03 AM

Hubungan antara HTML dan React adalah teras pembangunan front-end, dan mereka bersama-sama membina antara muka pengguna aplikasi web moden. 1) HTML mentakrifkan struktur kandungan dan semantik, dan React membina antara muka dinamik melalui komponenisasi. 2) Komponen React Gunakan sintaks JSX untuk membenamkan HTML untuk mencapai rendering pintar. 3) Kitaran Hayat Komponen Menguruskan Rendering HTML dan Kemas kini secara dinamik mengikut keadaan dan atribut. 4) Gunakan komponen untuk mengoptimumkan struktur HTML dan meningkatkan keupayaan. 5) Pengoptimuman prestasi termasuk mengelakkan penyampaian yang tidak perlu, menggunakan atribut utama, dan menjaga tanggungjawab tunggal komponen.

React and the Frontend: Membina Pengalaman InteraktifReact and the Frontend: Membina Pengalaman InteraktifApr 11, 2025 am 12:02 AM

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

React and the Frontend Stack: Alat dan TeknologiReact and the Frontend Stack: Alat dan TeknologiApr 10, 2025 am 09:34 AM

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, dengan komponen terasnya dan pengurusan negeri. 1) Memudahkan pembangunan UI melalui komponen dan pengurusan negeri. 2) Prinsip kerja termasuk perdamaian dan rendering, dan pengoptimuman dapat dilaksanakan melalui React.Memo dan Usememo. 3) Penggunaan asas adalah untuk membuat dan membuat komponen, dan penggunaan lanjutan termasuk menggunakan cangkuk dan konteksapi. 4) Kesalahan biasa seperti kemas kini status yang tidak betul, anda boleh menggunakan ReactDevTools untuk debug. 5) Pengoptimuman prestasi termasuk menggunakan react.memo, senarai virtualisasi dan codesplitting, dan menyimpan kod yang boleh dibaca dan dikekalkan adalah amalan terbaik.

Peranan React dalam HTML: Meningkatkan Pengalaman PenggunaPeranan React dalam HTML: Meningkatkan Pengalaman PenggunaApr 09, 2025 am 12:11 AM

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna