Rumah  >  Artikel  >  hujung hadapan web  >  Soalan Temuduga JavaScript Teratas Yang Perlu Anda Ketahui

Soalan Temuduga JavaScript Teratas Yang Perlu Anda Ketahui

王林
王林asal
2024-09-10 20:32:18828semak imbas

Top JavaScript Interview Questions You Need to Know

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.

1. Apakah Penutupan dalam JavaScript?

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.

2. Terangkan Gelung Acara dan Cara Ia Berfungsi

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.

3. Apakah Perbezaan Antara == dan ===?

== (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.

4. Apakah Janji dan Bagaimana Ia Berfungsi?

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!

5. Apakah Kata Kunci ini dalam JavaScript?

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

6. Apakah Fungsi Anak Panah dan Bagaimanakah Ia Berbeza dengan Fungsi Biasa?

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.

7. Bagaimanakah Warisan Prototaip Berfungsi dalam JavaScript?

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

8. Apakah Perbezaan Antara null dan undefined?

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

9. Apakah itu memetakan, menapis dan mengurangkan Kaedah?

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

10. Bagaimana Anda Mengoptimumkan Prestasi JavaScript?

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.

Abschluss

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!

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