5 Latihan Temuduga JavaScript Tipikal
mata teras
- Soalan wawancara JavaScript biasa biasanya berputar di sekitar pemahaman konsep utama, seperti skop, mewujudkan kaedah asli, promosi,
- kata kunci, dan
this
dancall()
fungsi.apply()
Dalam JavaScript, adalah penting untuk memahami konteks fungsi dan cara memanggilnya. Kata kunci - merujuk kepada konteks, yang berbeza -beza bergantung kepada sama ada fungsi itu dipanggil sebagai sebahagian daripada objek atau sebagai fungsi mandiri.
this
ketinggian dalam JavaScript merujuk kepada proses di mana pembolehubah dan fungsi dipindahkan ke bahagian atas skop penahanan mereka. Walau bagaimanapun, sementara fungsi mengekalkan nilai awalnya, pembolehubah tidak, dan pada mulanya ditetapkan kepada - .
undefined
Soalan 1: Skop
Pertimbangkan kod berikut:
(function() { var a = b = 5; })(); console.log(b);
Jawab
Cetak kod di atas 5. Caranya masalah ini ialah dalam ekspresi fungsi pelaksanaan segera (IIFE), terdapat dua pernyataan tugasan, tetapi pembolehubah diisytiharkan dengan kata kunci a
. Ini bermakna bahawa var
adalah pemboleh ubah tempatan fungsi. Sebaliknya, a
diberikan kepada skop global. Satu lagi helah dengan masalah ini ialah ia tidak menggunakan corak ketat (b
) di dalam fungsi. Jika mod ketat diaktifkan, kod akan membuang ralat "'use strict';
Uncaught ReferenceError: b is not defined
(function() { 'use strict'; var a = window.b = 5; })(); console.log(b);
Tentukan fungsi
pada objek. Fungsi ini menerima integer, menyatakan bilangan kali rentetan perlu diulang. Fungsi ini mengembalikan rentetan yang diulang untuk beberapa kali tertentu. Contohnya: String
repeatify
harus dicetak.
console.log('hello'.repeatify(3));
Jawab hellohellohello
Pelaksanaan yang mungkin adalah seperti berikut:
Soalan ini menguji pemahaman pemaju tentang warisan JavaScript dansifat. Ia juga mengesahkan bahawa pemaju boleh melanjutkan fungsi jenis data asli (walaupun tidak perlu dilakukan). Satu lagi perkara penting di sini adalah untuk membuktikan bahawa anda memahami bagaimana untuk mengelakkan penulisan fungsi yang mungkin telah ditakrifkan. Ini dilakukan dengan menguji sama ada fungsi itu tidak wujud sebelum menentukan fungsi anda sendiri:
String.prototype.repeatify = String.prototype.repeatify || function(times) { var str = ''; for (var i = 0; i < times; i++) { str += this; } return str; };
Teknik ini amat berguna apabila anda diminta mensimulasikan fungsi JavaScript. prototype
Soalan 3: Meningkatkan
Apakah hasil melaksanakan kod ini? Kenapa?
(function() { var a = b = 5; })(); console.log(b);
Jawab
Hasil kod ini adalah undefined
dan 2
. Alasannya ialah kedua -dua pembolehubah dan fungsi dipromosikan (dipindahkan ke bahagian atas fungsi), tetapi pembolehubah tidak mengekalkan sebarang nilai yang diberikan. Oleh itu, apabila mencetak pembolehubah a
ia wujud dalam fungsi (ia diisytiharkan), tetapi masih undefined
. Dengan kata lain, kod di atas bersamaan dengan kod berikut:
(function() { 'use strict'; var a = window.b = 5; })(); console.log(b);
Soalan 4: this
Bagaimana ia berfungsi dalam JavaScript
Apakah hasil daripada kod berikut? Terangkan jawapan anda.
console.log('hello'.repeatify(3));
Jawab
cetakan kod Aurelio De Rosa
dan John Doe
. Sebabnya ialah konteks fungsi (apa yang dirujuk oleh kata kunci this
) dalam JavaScript bergantung kepada bagaimana fungsi dipanggil, bukan bagaimana ia ditakrifkan. Dalam panggilan console.log()
pertama, getFullname()
dipanggil sebagai fungsi objek obj.prop
. Oleh itu, konteks merujuk kepada yang terakhir, dan fungsi mengembalikan sifat fullname
objek. Sebaliknya, apabila getFullname()
diberikan kepada pembolehubah test
, konteks merujuk kepada objek global (window
secara tersirat ditetapkan sebagai harta objek global. Oleh itu, fungsi mengembalikan nilai atribut yang dinamakan test
, yang dalam kes ini adalah nilai yang ditetapkan oleh kod pada baris pertama coretan kod. window
fullname
dan call()
Tetapkan bug dalam isu sebelumnya supaya yang terakhir dicetak apply()
.
Jawab console.log()
Aurelio De Rosa
atau untuk memaksa konteks fungsi. Jika anda tidak memahami mereka dan perbezaan mereka, saya cadangkan anda membaca artikel "perbezaan antara dan
". Dalam kod berikut, saya akan menggunakan, tetapi dalam kes ini, call()
akan menghasilkan hasil yang sama: apply()
function.call
function.apply
call()
Kesimpulan apply()
String.prototype.repeatify = String.prototype.repeatify || function(times) { var str = ''; for (var i = 0; i < times; i++) { str += this; } return str; };
FAQs (FAQ)
Apakah kesilapan biasa yang harus dielakkan dalam wawancara pengekodan JavaScript?
Salah satu kesilapan yang paling biasa tidak memahami sepenuhnya masalah sebelum mula mengekod. Luangkan masa untuk memahami masalah dan, jika perlu, tanya penjelasan. Kesalahan lain ialah kes kelebihan tidak dipertimbangkan. Sentiasa pertimbangkan kes -kes kelebihan yang berpotensi dan bagaimana kod anda akan mengendalikannya. Juga, elakkan nilai keras. Penyelesaian anda harus berfungsi untuk semua input, bukan hanya contoh yang disediakan. Akhirnya, ingatlah untuk menyampaikan proses pemikiran anda. Pewawancara berminat dengan penyelesaian anda terhadap masalah anda, bukan hanya penyelesaian akhir.
Bagaimana untuk mempersiapkan wawancara pengekodan JavaScript?
Pertama sekali, anda mesti memahami pengetahuan asas JavaScript. Ini termasuk pemahaman konsep seperti penutupan, janji, async/await
dan ciri -ciri ES6. Amalan masalah pengekodan pada platform seperti LeetCode, Hackerrank, dan Codewars. Juga, baca soalan wawancara JavaScript biasa dan cuba menyelesaikannya sendiri. Akhirnya, fahami prinsip kerja JavaScript yang mendasari. Ini termasuk memahami ciri-ciri yang tidak menyekat gelung acara, susunan panggilan, dan JavaScript.
Apakah penutupan dalam JavaScript dan mengapa mereka penting?
Penutupan dalam JavaScript adalah fungsi yang mempunyai akses kepada skop induk, walaupun fungsi induk telah ditutup. Mereka penting kerana ia membolehkan privasi data dan digunakan dalam corak kilang dan modul fungsi. Memahami penutupan adalah penting kerana mereka adalah bahagian asas JavaScript.
Bolehkah anda menerangkan konsep "this
"
, this
atau call
. apply
bind
JavaScript menggunakan panggilan balik, janji, dan
untuk mengendalikan operasi tak segerak. Panggilan balik adalah fungsi yang diluluskan sebagai hujah kepada fungsi lain dan dipanggil selepas beberapa operasi selesai. Janji adalah objek yang menunjukkan bahawa operasi tak segerak akhirnya selesai atau gagal. adalah gula sintaks untuk janji, yang menjadikan kod asynchronous kelihatan dan berkelakuan seperti kod segerak. async/await
async/await
Prototaip dalam JavaScript adalah mekanisme untuk objek JavaScript untuk mewarisi ciri -ciri antara satu sama lain. JavaScript sering dipanggil bahasa berasaskan prototaip, dan pemahaman prototaip adalah kunci untuk memahami JavaScript.
Bolehkah anda menerangkan perbezaan antara "
==
"===
==
Loop acara adalah mekanisme dalam JavaScript yang sentiasa memeriksa sama ada timbunan panggilan kosong. Jika ya, ia mengambil tugas pertama dari barisan tugas dan menolaknya ke timbunan panggilan. Ia membolehkan JavaScript menjadi tidak menyekat dan mengendalikan operasi tak segerak.
Apakah janji JavaScript?
Janji dalam JavaScript adalah objek yang menunjukkan bahawa operasi tak segerak akhirnya selesai atau gagal. Mereka boleh berada di salah satu daripada tiga negeri: menunggu, selesai, atau ditolak. Janji digunakan untuk mengendalikan operasi tak segerak dengan cara yang lebih fleksibel daripada panggilan balik.
Apakah corak reka bentuk JavaScript biasa?
Beberapa corak reka bentuk JavaScript biasa termasuk mod modul, mod prototaip, mod pemerhati, dan mod singleton. Memahami corak ini dapat membantu anda menulis lebih cekap, lebih mudah untuk dikekalkan, dan kod yang lebih baik.
Atas ialah kandungan terperinci 5 Latihan Temuduga JavaScript Tipikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.
