Rumah >hujung hadapan web >tutorial js >Soalan Temuduga JavaScript Penting Yang Perlu Anda Ketahui

Soalan Temuduga JavaScript Penting Yang Perlu Anda Ketahui

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-06 01:39:40177semak imbas

Essential JavaScript Interview Questions You Should Know

Sebagai seseorang yang melalui pelbagai temu bual JavaScript, saya telah menyusun senarai soalan penting yang menguji kemahiran dan pemahaman saya tentang konsep teras. Dalam bahagian pertama siri ini, saya berkongsi 40 soalan yang saya hadapi secara peribadi, merangkumi segala-galanya daripada asas kepada topik temu bual utama.

Soalan-soalan ini bukan sekadar teori; mereka mencabar anda untuk menunjukkan pengetahuan praktikal anda dan kebolehan menyelesaikan masalah. Sama ada anda sedang bersiap sedia untuk peranan bahagian hadapan atau timbunan penuh, soalan ini akan membantu anda mempertajam kemahiran anda.

Chalo Shuru karte hai!

1. Adakah javaScipt jenis dinamik atau bahasa jenis pembolehubah?

Jawapan: JavaScript ialah bahasa yang ditaip secara dinamik, bermakna jenis pembolehubah boleh berubah pada masa jalan dan bukannya ditetapkan pada masa penyusunan.

2. Bagaimanakah anda menghantar permintaan http ke belakang?

Jawapan: Ambil API, Axios, XMLHttpRequest

3. Apakah Konteks Pelaksanaan?

Jawapan: Dalam JavaScript, Konteks Pelaksanaan ialah persekitaran tempat kod dijalankan dan menentukan pembolehubah, objek dan fungsi yang tersedia untuk digunakan. Setiap kali fungsi dijalankan, konteks pelaksanaan baharu dibuat hanya untuk fungsi itu, memegang pembolehubah dan skopnya sendiri.

Setiap konteks pelaksanaan mempunyai dua fasa utama:

  1. Fasa Penciptaan Memori: JavaScript mula-mula mengimbas kod dan memperuntukkan memori untuk pembolehubah dan fungsi.
  2. Fasa Pelaksanaan: Kod berjalan baris demi baris.

4. Apakah Persekitaran Leksikal?

Jawapan: Persekitaran leksikal dalam JavaScript ialah struktur data yang menyimpan pembolehubah dan fungsi yang ditakrifkan dalam skop semasa, bersama-sama dengan rujukan kepada semua skop luar. Ia juga dikenali sebagai skop leksikal.

5. Apakah perbezaan antara null dan undefined?

Jawapan: null: Nilai tugasan yang bermaksud pembolehubah menunjuk kepada tiada objek, menunjukkan bahawa ia tidak mempunyai nilai khusus.

tidak ditentukan: Bermaksud pembolehubah diisytiharkan tetapi tidak mempunyai nilai yang ditetapkan, menunjukkan pembolehubah itu sendiri kehilangan nilai.

Jenis null ialah objek.
Jenis undefined adalah undefined.

6. Bagaimana JavaScript mengendalikan memori?

Jawapan: JavaScript mengurus memori terutamanya melalui pengumpulan sampah automatik, bermakna ia memperuntukkan dan melepaskan memori secara automatik semasa pelaksanaan kod.

7. Terangkan Gelung Acara?

Jawapan: JavaScript ialah bahasa satu utas, bermakna ia hanya boleh melaksanakan satu tugas pada satu masa dalam satu susunan panggilan. Walau bagaimanapun, di sebalik sifat benang tunggal ini, JavaScript mampu melaksanakan operasi tak segerak dan tidak menyekat berkat gelung acara.

Gelung peristiwa ialah mekanisme asas dalam JavaScript yang mengendalikan operasi tak segerak. Apabila tugasan, seperti permintaan HTTP atau acara DOM, dimulakan, tugas itu diserahkan kepada API penyemak imbas.

Gelung acara sentiasa memantau timbunan panggilan dan tugas
beratur. Jika timbunan panggilan kosong, gelung acara menyemak
terlebih dahulu microtask beratur untuk sebarang tugasan yang belum selesai dan melaksanakannya.

Setelah baris gilir microtask kosong, gelung acara kemudian menyemak baris gilir macrotask dan mengalihkan tugasan dari sana ke tindanan panggilan untuk pelaksanaan. Proses ini memastikan tugas keutamaan tinggi (tugas mikro) dilaksanakan sebelum tugas keutamaan rendah (tugas makro).

8. Mengangkat dan Zon Mati Sementara?

Jawapan: Hoisting ialah ciri JavaScript yang membolehkan anda menggunakan pembolehubah dan fungsi sebelum ia diisytiharkan. Ini bermakna anda boleh pembolehubah dan fungsi sebelum ia ditakrifkan dalam kod anda. Pengangkatan dilakukan oleh enjin JavaScript, yang memindahkan pengisytiharan pembolehubah dan fungsi ke bahagian atas "skop" mereka.

Dalam JavaScript, sebelum melaksanakan sebarang kod, enjin JavaScript melakukan fasa penyediaan memori yang dikenali sebagai angkat. Semasa fasa ini, enjin memperuntukkan memori untuk pembolehubah dan fungsi.

Pengisytiharan fungsi dinaikkan sepenuhnya, bermakna ia boleh digunakan di mana-mana dalam skopnya, walaupun sebelum baris pengisytiharan sebenar mereka.

Pembolehubah yang diisytiharkan dengan var dinaikkan dan dimulakan dengan undefined. Ini bermakna anda boleh mengakses pembolehubah var sebelum pengisytiharannya, tetapi nilainya tidak akan ditentukan.

Sebaliknya: Pembolehubah yang diisytiharkan dengan let dan const juga dinaikkan tetapi kekal tidak dimulakan. Mengaksesnya sebelum pengisytiharan mereka dalam kod menghasilkan ReferenceError.

Zon Mati Sementara:

Tempoh ini antara permulaan blok dan pengisytiharan sebenar pembolehubah let atau const dipanggil Temporal Dead Zone (TDZ). TDZ wujud dari permulaan blok sehingga baris di mana pembolehubah diisytiharkan dan dimulakan.

Zon mati sementara ialah konsep dalam JS yang berkaitan dengan pengisytiharan let dan const. Pembolehubah dengan pengisytiharan let atau const dinaikkan ke bahagian atas skopnya, tetapi ia tidak tersedia dengan serta-merta dalam kod. Ini bermakna anda boleh menggunakan pembolehubah sebelum ia diisytiharkan, tetapi nilai pembolehubah tidak akan ditentukan sehingga ia diberikan nilai.

9. Skop dan Rantaian Skop?

Jawapan: Skop mengawal kebolehcapaian pembolehubah dalam bahagian kod yang berlainan. Ia menentukan tempat pembolehubah boleh diakses dan
di mana ia tidak boleh.

Terdapat tiga jenis skop:

Skop Global: Pembolehubah yang diisytiharkan dalam skop global boleh menjadi
diakses dari mana-mana sahaja dalam kod.
Skop Tempatan: Pembolehubah yang diisytiharkan dalam fungsi hanyalah
boleh diakses dalam fungsi itu.
Skop Blok: Pembolehubah diisytiharkan di dalam blok (seperti dalam kerinting
pendakap {}) hanya boleh diakses dalam blok itu.

Rantai Skop:

Rantai skop bermaksud rangkaian rujukan. JavaScript tidak berputus asa; ia mempunyai mekanisme memburu untuk pembolehubah. Ia terus mencari pembolehubah. Pertama, ia akan menyemak dalam skop setempat untuk melihat sama ada pembolehubah boleh diakses. Jika tidak, ia akan melihat dalam skop luar. Ia akan berterusan sehingga mencapai skop global atau konteks pelaksanaan global. Pemburuan berterusan untuk pembolehubah semasa rantai dipanggil rantaian skop. Konteks pelaksanaan sentiasa mencari dari skop dalam ke skop luar, tetapi ia tidak boleh pergi dari skop luar ke skop dalam.

10. Warisan Prototaip?

Jawapan: Memautkan prototaip objek induk kepada objek anak untuk berkongsi dan menggunakan sifat kelas induk. Ini bermakna sifat dan kaedah boleh dipindahkan dari satu objek ke objek lain melalui prototaip.

Sebagai contoh, kaedah seperti .join dan .length adalah sebahagian daripada warisan prototaip kerana sifat ini datang daripada kelas Objek utama dalam JavaScript dan tersedia dalam objek anda.

Dalam JavaScript, semuanya adalah objek, jadi objek boleh berkongsi sifat. Ini bermakna tatasusunan boleh menggunakan kaedah daripada objek dan rentetan boleh melakukan perkara yang sama.

let faang = {
    name: "google",
    salary: function(){
        console.log("100K Salary")
    }
}
let engineer = {
    employeeId: 1278,
    role: function(){
        console.log("Frontend Developer")
    }
}

Cara Lama:

engineer.__proto__ = faang;

Cara Baharu:

let engineer = Object.create(faang, {
    role: function(){
        console.log("Backend Developer")
    }
})

Object.setPrototypeOf(engineer, faang);

// let res = Object.getPrototypeOf(faang);

11. Terangkan Janji dalam JavaScript?

Jawapan: Janji ialah cara untuk mengendalikan operasi tak segerak dalam JavaScript. Mereka membenarkan anda menulis kod yang boleh dilaksanakan secara tak segerak, tanpa menyekat utas utama. Janji dicipta menggunakan pembina Promise dan boleh dirantai bersama menggunakan kaedah kemudian.

Janji dalam JavaScript bertindak sebagai pemegang tempat yang boleh menyelesaikan atau menolak pada masa hadapan.

Janji mempunyai tiga keadaan: belum selesai, dipenuhi dan ditolak. Apabila janji belum selesai, ini bermakna operasi tak segerak masih berjalan. Apabila janji ditepati, ini bermakna operasi tak segerak telah berjaya diselesaikan. Apabila janji ditolak, ini bermakna operasi tak segerak telah gagal.

Mengendalikan Janji

Janji menyediakan kaedah untuk mengendalikan hasil operasi tak segerak:

.then(): Digunakan untuk mengendalikan keadaan yang dipenuhi dan mendapatkan
yang telah diselesaikan nilai.
.catch(): Digunakan untuk mengendalikan keadaan ditolak dan menangkap sebarang ralat
yang berlaku semasa pelaksanaan.
.finally(): Kaedah ini melaksanakan panggilan balik apabila janji adalah
diselesaikan, bermakna ia akan berjalan sama ada janji ditepati atau
ditolak.

12. Terangkan Async Await?

Jawapan: Async/await ialah ciri sintaks dalam JavaScript yang membolehkan anda menulis kod tak segerak dengan cara yang lebih segerak. Ia menggunakan tak segerak dan menunggu kata kunci untuk mentakrifkan fungsi tak segerak

Dalam fungsi async JavaScript mengembalikan Janji. Kata kunci await menjeda pelaksanaan fungsi async sehingga janji yang ditunggu diselesaikan. Selepas menunggu selebihnya fungsi async masuk dalam baris gilir microtask. Ini membolehkan kod asynchronous yang lebih mudah dibaca dan terurus.

let faang = {
    name: "google",
    salary: function(){
        console.log("100K Salary")
    }
}

13. Terangkan kata kunci ini?

Jawapan: Kata kunci “ini” merujuk kepada objek yang sedang melaksanakan fungsi tersebut. Nilainya bergantung pada konteks di mana fungsi dipanggil. Dalam konteks global (seperti dalam penyemak imbas), ini merujuk kepada objek tetingkap

14. Terangkan Penutupan dan Skop Leksikal?

Jawapan: Penutupan ialah fungsi yang mempunyai akses kepada pembolehubah dari skop luarnya, walaupun selepas fungsi luar selesai dilaksanakan.

Berikut ialah contoh penutupan dalam JavaScript:

let engineer = {
    employeeId: 1278,
    role: function(){
        console.log("Frontend Developer")
    }
}

Dalam contoh ini, fungsi outerFunction mentakrifkan outerVariable dan fungsi innerFunction yang mempunyai akses kepada outerVariable. InnerFunction mengembalikan fungsi outerFunction, yang membolehkan ia dipanggil kemudian.

Satu contoh penutupan berkaitan DOM ialah kaedah addEventListener. Kaedah addEventListener membolehkan anda melampirkan pendengar acara pada elemen dalam DOM. Fungsi pendengar acara mempunyai akses kepada sifat dan kaedah elemen, walaupun selepas elemen telah dialih keluar daripada DOM.

Berikut ialah contoh menggunakan kaedah addEventListener dengan penutupan:

engineer.__proto__ = faang;

Dalam contoh ini, fungsi handleClick ditakrifkan dalam kaedah addEventListener. Fungsi handleClick mempunyai akses kepada elemen butang, walaupun selepas elemen butang telah dialih keluar daripada DOM.

Skop Leksikal:

Dalam JavaScript, skop leksikal ialah konsep menentukan skop pembolehubah berdasarkan pengisytiharannya. Ini bermakna skop pembolehubah ditentukan oleh blok kod dalam
yang diisytiharkan, bukan oleh blok kod di mana ia digunakan.

15. Adakah javascript berulir tunggal atau berbilang benang?

Jawapan: JavaScript ialah bahasa satu benang, bermakna ia mempunyai satu timbunan panggilan dan satu timbunan memori. Ia melaksanakan kod mengikut tertib, melengkapkan satu keping kod sebelum beralih ke yang seterusnya. Struktur ini membenarkan JavaScript mengendalikan operasi tak segerak tanpa menyekat utas utama.

Tingkah laku tak segerak membolehkan kami menggunakan ciri seperti setTimeout, AJAX dan janji. Fungsi ini diuruskan oleh penyemak imbas, bukan JavaScript itu sendiri, yang membantu memastikan urutan utama bebas untuk menjalankan kod lain sementara menunggu operasi ini selesai.

16. Terangkan bagaimana enjin javascript berfungsi?

Jawapan: Enjin JavaScript ialah program yang melaksanakan kod JavaScript. Ia ditemui dalam pelayar web dan persekitaran lain yang mengehos JavaScript. Enjin JavaScript yang paling popular ialah V8 Google, SpiderMonkey dan JavaScriptCore. Enjin ini ditulis dalam C dan digunakan untuk melaksanakan kod JavaScript.

17. Perbezaan antara var, let dan const?

Jawapan:

-var: Skop pembolehubah yang ditakrifkan dengan kata kunci "var" terhad kepada "fungsi" di mana pembolehubah itu ditakrifkan. Jika ia ditakrifkan di luar fungsi, skop pembolehubah adalah global. Nilai lalai var tidak ditentukan.

  • let: Skop pembolehubah yang ditakrifkan dengan kata kunci "let" atau "const" terhad kepada "blok" yang ditakrifkan oleh pendakap kerinting iaitu {}. Nilai lalai let tidak dimulakan.
  • const: Skop pembolehubah yang ditakrifkan dengan kata kunci "const" terhad kepada blok yang ditakrifkan oleh pendakap kerinting. Walau bagaimanapun, jika pembolehubah ditakrifkan dengan kata kunci const, ia tidak boleh ditetapkan semula. Nilai lalai const tidak dimulakan.

18. Jenis jenis data yang berbeza dalam javascript?

Jawapan: Terdapat terutamanya dua jenis jenis data dalam JavaScript: jenis data primitif dan jenis data objek (rujukan).

Jenis data primitif ialah jenis data asas dalam JavaScript. Ia termasuk nombor, rentetan, boolean, nol dan tidak ditentukan. Simbol juga merupakan jenis data primitif, yang mewakili pengecam unik.

Jenis data objek ialah jenis data yang mengandungi jenis data lain. Mereka dicipta menggunakan literal objek atau fungsi pembina. Objek, Tatasusunan dan Fungsi ialah contoh jenis data objek.

19. Bincangkan panggilan balik?

Jawapan: Fungsi panggil balik ialah fungsi yang dihantar sebagai argumen kepada fungsi lain dan dipanggil apabila peristiwa tertentu berlaku. Ia biasanya digunakan dalam JavaScript untuk mengendalikan operasi tak segerak, seperti membuat permintaan HTTP atau membaca daripada fail.

20. Bincangkan Neraka Panggilan Balik?

Jawapan: Neraka panggilan balik ialah masalah dalam JavaScript di mana fungsi bersarang di dalam satu sama lain, menjadikan kod sukar dibaca dan difahami. Ia boleh menyebabkan panggilan balik dipanggil beberapa kali atau tidak dipanggil langsung, yang boleh menyebabkan tingkah laku yang tidak dijangka.

Berikut ialah contoh neraka panggil balik:

let faang = {
    name: "google",
    salary: function(){
        console.log("100K Salary")
    }
}

21. Bagaimana untuk mencipta objek dalam javascript?

Jawapan: Objek ialah jenis data asas dalam JavaScript. Ia boleh dibuat menggunakan literal objek atau fungsi pembina.

Tersurat objek disertakan dalam pendakap kerinting {} dan digunakan untuk mencipta objek dengan pasangan nilai kunci. Berikut ialah contoh objek literal:

let engineer = {
    employeeId: 1278,
    role: function(){
        console.log("Frontend Developer")
    }
}

Fungsi pembina digunakan untuk mencipta objek dengan sifat dan kaedah tersuai:

engineer.__proto__ = faang;

Walaupun terdapat cara lain untuk mencipta objek seperti menggunakan kaedah Object.create(), literal objek dan fungsi pembina ialah cara yang paling biasa untuk mencipta objek dalam JavaScript.

22. Bagaimana untuk mengklon objek dalam JavaScript?

Jawapan:

  1. Menggunakan Object.assign():
let engineer = Object.create(faang, {
    role: function(){
        console.log("Backend Developer")
    }
})

Object.setPrototypeOf(engineer, faang);

// let res = Object.getPrototypeOf(faang);

  1. Menggunakan Operator Spread:
async function fetchData() {
  try {
    const response = await fetch('https://api.freeapi.app/v1/jokes/random');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

fetchData()
  .then(() => console.log('Data fetched'))
  .catch(error => console.error(error));

23. Apakah operator rehat dan sebarkan dalam javascript?

Jawapan: Operator rehat dan sebarkan ialah dua ciri penting dalam JavaScript yang membolehkan anda bekerja dengan tatasusunan dan objek dengan cara yang lebih ringkas dan boleh dibaca.

Operator selebihnya membenarkan anda mengambil tatasusunan atau objek sebagai hujah dan menggunakannya dalam panggilan fungsi.

Pengendali hamparan membenarkan anda mengembangkan tatasusunan atau objek ke dalam elemen individu.

function outerFunction() {
  const outerVariable = 'I am an outer variable';

  function innerFunction() {
    console.log(outerVariable); // Output: I am an outer variable
  }

  return innerFunction;
}

const closure = outerFunction();
closure(); // Output: I am an outer variable

Dalam contoh ini, fungsi jumlah mengambil tatasusunan nombor sebagai hujah menggunakan operator selebihnya.
Operator spread digunakan untuk mengembangkan tatasusunan menjadi elemen individu, yang kemudiannya dihantar ke fungsi pengurangan.

24. Apakah fungsi tertib tinggi dalam javascript?

Jawapan: Fungsi tertib tinggi ialah fungsi yang mengambil fungsi lain sebagai argumen atau mengembalikan fungsi sebagai hasil. Ia adalah alat yang berkuasa dalam JavaScript yang membolehkan anda menulis kod yang lebih fleksibel dan boleh digunakan semula.

const button = document.getElementById('myButton');

function handleClick() {
  console.log('Button clicked');
}

button.addEventListener('click', handleClick);

25. Namakan beberapa ciri ES6 dalam javascript.

Jawapan: Berikut ialah beberapa ciri utama ES6:

  • Fungsi anak panah: Fungsi anak panah menyediakan sintaks yang lebih ringkas untuk fungsi penulisan. Ia ditakrifkan menggunakan => pengendali.
  • Tersurat templat: Tersurat templat membolehkan anda membenamkan ungkapan dalam rentetan. Ia disertakan dengan tanda belakang (`) dan boleh digunakan untuk mencipta rentetan berbilang baris.
  • Penyusunan tugasan: Pemusnahan tugasan membolehkan anda mengekstrak nilai daripada tatasusunan atau objek dan menetapkannya kepada pembolehubah. Ia dilakukan menggunakan operator =.
  • Pengendali penyebaran: Operator penyebaran membenarkan anda mengembangkan tatasusunan atau objek ke dalam elemen individu. Ia digunakan untuk menghantar berbilang argumen kepada fungsi.
  • Kelas: Kelas menyediakan cara untuk menentukan objek dengan sifat dan kaedah. Mereka ditakrifkan menggunakan kata kunci kelas.
  • Modul: Modul membolehkan anda membahagikan kod anda kepada fail berasingan dan fungsi import/eksport antaranya. Ia ditakrifkan menggunakan kata kunci import dan eksport.
  • Janji: Janji menyediakan cara untuk mengendalikan operasi tak segerak dalam JavaScript. Ia digunakan untuk mewakili penyiapan atau kegagalan operasi tak segerak.
  • Penjana: Penjana membenarkan anda menentukan fungsi yang boleh dijeda dan disambung semula. Ia ditakrifkan menggunakan kata kunci fungsi.
  • Peta dan Set: Peta dan Set ialah struktur data yang membolehkan anda menyimpan pasangan nilai kunci. Ia ditakrifkan menggunakan pembina Peta dan Set.

Mengapa Soalan Ini Penting

Soalan ini menggambarkan konsep teras yang saya temui semasa temu duga saya. Ia direka untuk menguji pemahaman anda tentang JavaScript dalam senario dunia sebenar.

Bersedia untuk temu duga JavaScript? Semak semula soalan ini dan amalkan jawapan anda. Untuk pengalaman pembelajaran yang lebih mendalam, lihat kursus saya di quicknxt.com untuk mendapatkan pengetahuan praktikal dan meningkatkan kemahiran pengekodan anda. Mari sambung belajar bersama-sama!

Atas ialah kandungan terperinci Soalan Temuduga JavaScript Penting 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