Pengenalan:
JavaScript kekal sebagai salah satu bahasa pengaturcaraan paling popular dalam pembangunan web. Sama ada anda seorang pembangun junior atau profesional berpengalaman, menguasai JavaScript adalah penting untuk temu duga. Dalam blog ini, kami akan membincangkan sepuluh soalan temuduga JavaScript penting yang setiap pembangun harus bersedia untuk menjawabnya.
Penutupan ialah konsep asas dalam JavaScript. Ia berlaku apabila fungsi mengekalkan akses kepada skop leksikalnya, walaupun apabila fungsi itu dilaksanakan di luar skop tersebut.
function outerFunction() { let outerVariable = 'I am from outer scope'; function innerFunction() { console.log(outerVariable); // Accesses outerVariable } return innerFunction; } const closureFunction = outerFunction(); closureFunction(); // Outputs: I am from outer scope
Mengapa Ia Penting: Penutupan adalah kunci untuk memahami pengkapsulan data dan skop fungsi dalam JavaScript.
Gelung Acara ialah mekanisme yang membenarkan JavaScript melakukan operasi tanpa sekatan walaupun berbenang tunggal. Ia berfungsi dengan meletakkan operasi dalam baris gilir dan melaksanakannya apabila tindanan panggilan kosong.
Isi Penting:
Timbunan Panggilan: Mengendalikan pelaksanaan fungsi.
Barisan Panggilan Balik: Menahan panggilan balik yang sedia untuk dilaksanakan.
Gelung Peristiwa: Mengalihkan tugas daripada baris gilir panggil balik ke tindanan panggilan.
Mengapa Ia Penting: Memahami gelung acara adalah penting untuk menulis kod JavaScript yang cekap dan responsif.
== (Operator Kesaksamaan): Membandingkan nilai dengan paksaan jenis.
=== (Operator Kesaksamaan Tegas): Membandingkan nilai tanpa paksaan jenis (kesamaan ketat).
console.log(5 == '5'); // true console.log(5 === '5'); // false
Mengapa Ia Penting: Menggunakan === mengelakkan pepijat yang tidak dijangka yang disebabkan oleh paksaan jenis, menjadikan kod lebih boleh diramal dan boleh dipercayai.
Janji ialah objek yang mewakili penyiapan atau kegagalan operasi tak segerak. Ia menyediakan cara yang lebih bersih untuk mengendalikan kod tak segerak berbanding dengan panggilan balik.
Kaedah Utama:
kemudian(onFulfilled, onRejected): Mengendalikan keadaan diselesaikan dan ditolak.
catch(onRejected): Mengendalikan ralat.
finally(onFinally): Melaksanakan kod tanpa mengira hasil janji.
const promise = new Promise((resolve, reject) => { setTimeout(() => resolve('Resolved!'), 1000); }); promise.then(result => console.log(result)); // Outputs: Resolved!
Kata kunci ini merujuk kepada objek yang melaksanakan fungsi semasa. Nilainya bergantung pada konteks di mana fungsi dipanggil.
Kes Penggunaan Biasa:
Konteks Global: ini merujuk kepada objek global.
Kaedah Objek: ini merujuk kepada objek.
Fungsi Pembina: ini merujuk kepada kejadian yang dibuat.
const obj = { name: 'Alice', greet: function() { console.log(this.name); } }; obj.greet(); // Outputs: Alice
Fungsi Anak Panah menyediakan sintaks yang lebih ringkas dan mempunyai leksikal pengikatan ini, bermakna ia mewarisi ini daripada konteks sekeliling.
const add = (a, b) => a + b;
Perbezaan:
Fungsi Biasa: Mempunyai ini sendiri.
Fungsi Anak Panah: Mewarisi ini daripada skop induk.
Mengapa Ia Penting: Fungsi anak panah memudahkan kod dan menghalang isu biasa dengan pengikatan ini dalam panggilan balik. Fungsi anak panah memudahkan kod dan menghalang isu biasa dengan pengikatan ini dalam panggilan balik.
Warisan Prototaip membenarkan objek mewarisi sifat dan kaedah daripada objek lain. JavaScript menggunakan prototaip untuk melaksanakan warisan.
const animal = { speak() { console.log('Animal speaks'); } }; const dog = Object.create(animal); dog.bark = function() { console.log('Woof'); }; dog.speak(); // Outputs: Animal speaks dog.bark(); // Outputs: Woof
null: Mewakili ketiadaan nilai yang disengajakan.
tidak ditentukan: Mewakili pembolehubah yang telah diisytiharkan tetapi tidak dimulakan.
let a; console.log(a); // Outputs: undefined let b = null; console.log(b); // Outputs: null
Ini ialah fungsi tertib tinggi yang digunakan untuk manipulasi tatasusunan:
peta: Mencipta tatasusunan baharu dengan menggunakan fungsi pada setiap elemen.
penapis: Mencipta tatasusunan baharu dengan elemen yang lulus ujian.
reduce: Mengurangkan tatasusunan kepada satu nilai dengan menggunakan fungsi.
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(n => n * 2); const evens = numbers.filter(n => n % 2 === 0); const sum = numbers.reduce((total, n) => total + n, 0); console.log(doubled); // [2, 4, 6, 8, 10] console.log(evens); // [2, 4] console.log(sum); // 15
Teknik Pengoptimuman Prestasi:
Minify and Bundle: Gunakan alatan seperti Webpack untuk mengecilkan dan menggabungkan fail JavaScript.
Lazy Loading: Muatkan sumber hanya apabila diperlukan.
Menyahlantun/Mendikit: Kawal kadar pelaksanaan fungsi sebagai tindak balas kepada peristiwa.
Elakkan Kebocoran Memori: Pastikan pembersihan pendengar dan selang acara dengan betul.
Wenn Sie diese zehn JavaScript-Interviewfragen beherrschen, werden Sie auf verschiedene Szenarien und Herausforderungen vorbereitet, denen Sie in technischen Interviews begegnen könnten. Die Vertiefung Ihres Verständnisses dieser Themen wird Ihnen nicht nur bei Vorstellungsgesprächen helfen, sondern auch Ihre allgemeinen JavaScript-Kenntnisse verbessern.
"Macht kommt als Antwort auf ein Bedürfnis, nicht auf einen Wunsch. Du musst dieses Bedürfnis erschaffen."
Atas ialah kandungan terperinci Soalan Temuduga JavaScript Teratas Yang Perlu Anda Ketahui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!