


Hello! Saya Vishal Tiwari dan saya akan memberikan anda beberapa soalan temuduga javascript yang mencabar.
1. Apakah output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output: objek
Penjelasan: Ini adalah kebiasaan yang terkenal dalam JavaScript. Pengendali jenis mengembalikan "objek" apabila digunakan pada null, walaupun null bukan objek. Tingkah laku ini disebabkan oleh cara JavaScript dilaksanakan dan telah dikekalkan untuk keserasian ke belakang.
2. Apakah yang akan menjadi output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
Output: palsu
Penjelasan: Disebabkan cara aritmetik titik terapung berfungsi dalam JavaScript (dan banyak bahasa pengaturcaraan), 0.1 0.2 tidak sama dengan 0.3. Sebaliknya, ia menghasilkan 0.30000000000000004, yang membawa kepada perbandingan mengembalikan palsu.
3. Apakah yang akan menjadi output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
Output: 123
Penjelasan: Apabila anda cuba menetapkan sifat pada objek menggunakan objek lain sebagai kunci (a[b]), JavaScript menukar objek b kepada rentetan, yang menghasilkan "[objek Objek ]". Oleh itu, anda pada dasarnya menetapkan sifat "[objek objek]" kepada 123 dan apabila anda log a[b], ia mengembalikan 123.
4. Apakah output kod berikut?
const arr = [1, 2, 3]; arr[10] = 11; console.log(arr.length); // Output?
Jawapan:
Output: 11
Penjelasan: Apabila anda menetapkan nilai pada indeks yang lebih besar daripada panjang semasa tatasusunan (seperti arr[10] = 11), JavaScript mencipta "slot kosong" dalam tatasusunan untuk indeks dari 3 hingga 9. Walau bagaimanapun, sifat panjang tatasusunan mencerminkan indeks tertinggi tambah satu, yang dalam kes ini ialah 11.
5. Apakah yang akan menjadi output kod berikut?
let x = 1; let y = 2; const obj = { x: 10, y: 20, sum: function() { return this.x + this.y; } }; console.log(obj.sum()); // Output? console.log(obj.sum.call({ x: 100, y: 200 })); // Output? console.log(obj.sum.apply({ x: 1000, y: 2000 })); // Output?
Jawapan:
Output:
- Konsol.log pertama: 30
- Konsol.log kedua: 300
- Konsol.log ketiga: 3000
Penjelasan:
- obj.sum() menggunakan konteks obj ini, jadi ia menambah 10 dan 20, mengembalikan 30.
- obj.sum.call({ x: 100, y: 200 }) menggunakan kaedah panggilan untuk menukar ini kepada objek baharu dengan nilai x dan y masing-masing 100 dan 200, mengembalikan 300.
- obj.sum.apply({ x: 1000, y: 2000 }) melakukan perkara yang sama dengan apply, mengembalikan 3000.
6. Apakah yang akan menjadi output kod berikut?
console.log(1 + '1'); // Output? console.log(1 - '1'); // Output?
Jawapan:
Output:
- Konsol.log pertama: '11'
- Konsol.log kedua: 0
Penjelasan:
- Dalam 1 '1', JavaScript melakukan paksaan jenis, menukar nombor 1 kepada rentetan, menghasilkan '11'.
- Dalam 1 - '1', JavaScript menukar rentetan '1' kepada nombor, menghasilkan 1 - 1, yang sama dengan 0.
7. Apakah output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output: Output akan bergantung pada konteks di mana foo dipanggil, tetapi jika dalam konteks global, ia akan log objek global (tetingkap dalam penyemak imbas atau global dalam Node.js).
Penjelasan: Dalam fungsi anak panah, ini terikat secara leksikal, bermakna ia menggunakan nilai ini daripada konteks sekeliling. Jika foo dipanggil dalam skop global, ini akan merujuk kepada objek global.
8. Apakah output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
Output:
- Konsol.log pertama: 1
- Konsol.log kedua: 2
- Konsol.log ketiga: 2
- Konsol.log keempat: 1
- Konsol.log kelima: 1
Penjelasan: Fungsi createCounter mencipta penutupan yang mengekalkan pembolehubah kiraannya sendiri. Setiap kaedah (kenaikan, pengurangan, getCount) mengakses dan mengubah suai pembolehubah kiraan yang sama, memberikan gelagat yang konsisten.
9. Apakah yang akan menjadi output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
Output: [99, 2, 3]
Penjelasan: Dalam JavaScript, tatasusunan (seperti semua objek) ialah jenis rujukan. Apabila b ditugaskan kepada a, kedua-dua pembolehubah menghala ke tatasusunan yang sama dalam ingatan. Oleh itu, mengubah suai b mempengaruhi a.
10. Apakah output kod berikut?
const arr = [1, 2, 3]; arr[10] = 11; console.log(arr.length); // Output?
Jawapan:
Output: 3
Penjelasan: Dalam contoh ini, fungsi dalam mempunyai pembolehubah sendiri, yang membayangi pembolehubah dalam fungsi luar. Apabila console.log(a) dipanggil dalam inner, ia merujuk kepada a yang ditakrifkan dalam inner, iaitu 3.
11. Apakah output kod berikut?
let x = 1; let y = 2; const obj = { x: 10, y: 20, sum: function() { return this.x + this.y; } }; console.log(obj.sum()); // Output? console.log(obj.sum.call({ x: 100, y: 200 })); // Output? console.log(obj.sum.apply({ x: 1000, y: 2000 })); // Output?
Jawapan:
Output: { a: 1, b: 3, c: 4 }
Penjelasan: Kaedah Object.assign() menyalin nilai semua sifat terhitung daripada satu atau lebih objek sumber (obj1 dan obj2) kepada objek sasaran (objek kosong {}). Jika sifat yang sama wujud dalam berbilang objek sumber, yang terakhir diutamakan. Oleh itu, b: 3 daripada obj2 menimpa b: 2 daripada obj1.
12. Apakah yang akan menjadi output kod berikut?
console.log(1 + '1'); // Output? console.log(1 - '1'); // Output?
Jawapan:
Output: tidak ditentukan
Penjelasan: JavaScript secara automatik menyisipkan koma bertitik selepas penyataan kembali jika terdapat pemisah baris. Oleh itu, ia ditafsirkan sebagai pulangan;, yang mengembalikan tidak ditentukan. Untuk mengembalikan objek, anda harus meletakkan pendakap pembukaan { pada baris yang sama dengan kata kunci kembali.
13. Apakah yang akan menjadi output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output: tidak ditentukan
Penjelasan: Pembolehubah x di dalam fungsi foo dinaikkan tetapi tidak dimulakan sehingga penugasan var x = 2;. Oleh itu, apabila console.log(x); dilaksanakan, x tempatan diisytiharkan tetapi belum ditetapkan, jadi ia menghasilkan tidak ditentukan.
14. Apakah output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
Output: 99
Penjelasan: Kedua-dua a dan b merujuk kepada tatasusunan yang sama dalam ingatan. Apabila anda mengubah suai b[0], anda turut mengubah suai a[0] kerana kedua-duanya merujuk tatasusunan yang sama.
15. Apakah yang akan menjadi output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
- Consol.log pertama: "123"
- Console.log kedua: "33"
Penjelasan:
- Dalam 1 "2" "3", JavaScript menukar 1 kepada rentetan dan menggabungkan, menghasilkan "12" dan kemudian "123".
- Dalam 1 2 "3", JavaScript mula-mula menilai 1 2, yang bersamaan dengan 3 (nombor), dan kemudian menggabungkan "3", menghasilkan "33".
16. Apakah yang akan menjadi output kod berikut?
const arr = [1, 2, 3]; arr[10] = 11; console.log(arr.length); // Output?
Jawapan:
Output: []
Penjelasan: Menetapkan sifat panjang tatasusunan kepada 0 dengan berkesan mengosongkan tatasusunan. Oleh itu, arr kini merupakan tatasusunan kosong.
17. Apakah yang akan menjadi output kod berikut?
let x = 1; let y = 2; const obj = { x: 10, y: 20, sum: function() { return this.x + this.y; } }; console.log(obj.sum()); // Output? console.log(obj.sum.call({ x: 100, y: 200 })); // Output? console.log(obj.sum.apply({ x: 1000, y: 2000 })); // Output?
Jawapan:
Output: 2
Penjelasan: Fungsi dalam, apabila dipanggil, mempunyai pembolehubah sendiri iaitu 2. Apabila anda memanggil innerFunc(), ia log 2 kerana ia merujuk kepada pembolehubah tempatan a dalam dalam.
18. Apakah yang akan menjadi output kod berikut?
console.log(1 + '1'); // Output? console.log(1 - '1'); // Output?
Jawapan:
Output: 3
Penjelasan: Kaedah c dipanggil pada obj, jadi di dalam kaedah ini merujuk kepada obj. Oleh itu, ia mengeluarkan hasil tambah obj.a dan obj.b, iaitu 3.
19. Apakah output kod berikut?
const foo = () => { console.log(this); }; foo(); // Output?
Jawapan:
- Konsol.log pertama: palsu
- Konsol.log kedua: benar
Penjelasan:
- Pernyataan pertama mengembalikan palsu kerana isu ketepatan titik terapung (0.1 0.2 bersamaan dengan 0.30000000000000004).
- Pernyataan kedua membundarkan 0.1 0.2 kepada 0.3 dengan toFixed(1) dan menukarkannya kembali kepada nombor, menghasilkan perbandingan 0.3 === 0.3, iaitu benar.
20. Apakah yang akan menjadi output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output: objek global (atau tidak ditentukan dalam mod ketat)
Penjelasan: Dalam mod tidak ketat, nilai ini di dalam fungsi yang dipanggil dalam konteks global ialah objek global (iaitu, tetingkap dalam penyemak imbas atau global dalam Node.js). Dalam mod ketat, ini tidak akan ditentukan.
21. Apakah yang akan menjadi output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
- Konsol.log pertama: 2
- Konsol.log kedua: 1
Penjelasan:
- Object.assign(obj3, obj2) menyalin sifat daripada obj2 ke obj3, jadi obj3.a menjadi 2.
- obj3.__proto__ merujuk kepada obj1, yang mempunyai sifat a dengan nilai 1.
22. Apakah yang akan menjadi output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
Output: 3
Penjelasan: Dalam fungsi dalam, a merujuk kepada pembolehubah yang ditakrifkan di luar. Apabila inner dipanggil, a dinaikkan daripada 2 kepada 3 dan dilog.
23. Apakah yang akan menjadi output kod berikut?
const arr = [1, 2, 3]; arr[10] = 11; console.log(arr.length); // Output?
Jawapan:
Output: Helo, nama saya tidak ditentukan
Penjelasan: Apabila salam dipanggil tanpa konteks (iaitu, bukan sebagai kaedah orang), ini tidak terikat kepada orang. Dalam mod tidak ketat, ini lalai kepada objek global, dan memandangkan nama tidak ditakrifkan pada objek global, ia log tidak ditentukan.
24. Apakah output kod berikut?
let x = 1; let y = 2; const obj = { x: 10, y: 20, sum: function() { return this.x + this.y; } }; console.log(obj.sum()); // Output? console.log(obj.sum.call({ x: 100, y: 200 })); // Output? console.log(obj.sum.apply({ x: 1000, y: 2000 })); // Output?
Jawapan:
- Konsol.log pertama: benar
- Konsol.log kedua: benar
Penjelasan:
- Untuk console.log([1] == benar), tatasusunan [1] ditukar kepada jenis primitif, menghasilkan 1 dan 1 == benar adalah benar.
- Untuk console.log([0] == false), tatasusunan [0] bertukar kepada 0 dan 0 == false juga benar.
25. Apakah yang akan menjadi output kod berikut?
console.log(1 + '1'); // Output? console.log(1 - '1'); // Output?
Jawapan:
- Fo pertama(): 1
- Fo kedua(): 2
- Fo ketiga(): 3
Penjelasan: Fungsi foo mengekalkan penutupan sekitar pembolehubah kiraan, yang dinaikkan setiap kali foo dipanggil, mengekalkan keadaannya merentas panggilan.
26. Apakah yang akan menjadi output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output:
- Konsol pertama.log(a): 1
- Konsol.log(b): 2
- Konsol ketiga.log(c): 3
Penjelasan: a boleh diakses dalam fungsi kedua kerana penutupan. b juga boleh diakses seperti yang ditakrifkan pada mulanya. c ialah setempat kepada kedua, jadi ketiga-tiga pembolehubah dilog dengan betul.
27. Apakah yang akan menjadi output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
Output: 3
Penjelasan: Kaedah panggilan memanggil kenaikan dengan newObj seperti ini, jadi this.num merujuk kepada newObj.num. Operasi kenaikan menukar Obj.num baharu daripada 2 kepada 3.
28. Apakah output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
Output:
const arr = [1, 2, 3]; arr[10] = 11; console.log(arr.length); // Output?
Penjelasan: Fungsi setTimeout semuanya merujuk pembolehubah i yang sama kerana pengangkatan. Apabila tamat masa dilaksanakan, i telah dinaikkan kepada 4, menyebabkan 4 dilog tiga kali.
29. Apakah yang akan menjadi output kod berikut?
let x = 1; let y = 2; const obj = { x: 10, y: 20, sum: function() { return this.x + this.y; } }; console.log(obj.sum()); // Output? console.log(obj.sum.call({ x: 100, y: 200 })); // Output? console.log(obj.sum.apply({ x: 1000, y: 2000 })); // Output?
Jawapan:
- tatasusunan: [1, 2, 3]
- newArray: [2, 3, 4]
Penjelasan: Fungsi peta mencipta tatasusunan baharu berdasarkan transformasi yang digunakan pada setiap item. Tatasusunan asal kekal tidak berubah, manakala tatasusunan baru mencerminkan kenaikan.
30. Apakah output kod berikut?
console.log(1 + '1'); // Output? console.log(1 - '1'); // Output?
Jawapan:
Output: Output akan bergantung pada konteks di mana foo dipanggil, tetapi jika dalam konteks global, ia akan log objek global (tetingkap dalam penyemak imbas atau global dalam Node.js).
Penjelasan: Dalam fungsi anak panah, ini terikat secara leksikal, bermakna ia menggunakan nilai ini daripada konteks sekeliling. Jika foo dipanggil dalam skop global, ini akan merujuk kepada objek global.
31. Apakah yang akan menjadi output kod berikut?
const foo = () => { console.log(this); }; foo(); // Output?
Jawapan:
Output: 42
Penjelasan: Fungsi dalam ialah fungsi anak panah, yang secara leksikal mengikatnya dengan konteks fungsi kaedah. Oleh itu, this.value merujuk kepada obj.value, iaitu 42.
32. Apakah yang akan menjadi output kod berikut?
function createCounter() { let count = 0; return { increment: function() { count++; return count; }, decrement: function() { count--; return count; }, getCount: function() { return count; } }; } const counter = createCounter(); console.log(counter.increment()); // Output? console.log(counter.increment()); // Output? console.log(counter.getCount()); // Output? console.log(counter.decrement()); // Output? console.log(counter.getCount()); // Output?
Jawapan:
Output: ReferenceError
Penjelasan: Pembolehubah x dinaikkan dalam myFunction, bermakna ia wujud dalam skop fungsi tetapi tidak dimulakan sehingga selepas console.log(x). Ini mengakibatkan ReferenceError kerana pembolehubah x diakses sebelum pengisytiharannya.
33. Apakah yang akan menjadi output kod berikut?
console.log(typeof null); // Output?
Jawapan:
Output: Hello undefined
Penjelasan: Apabila salam dipanggil tanpa konteks yang jelas, ini tidak merujuk kepada obj, jadi this.name tidak ditentukan.
34. Apakah yang akan menjadi output kod berikut?
console.log(0.1 + 0.2 === 0.3); // Output?
Jawapan:
Output: nombor
Penjelasan: Dalam JavaScript, NaN (Bukan-Nombor) dianggap sebagai jenis angka dan jenis NaN mengembalikan "nombor".
35. Apakah yang akan menjadi output kod berikut?
const a = {}; const b = { key: 'b' }; const c = { key: 'c' }; a[b] = 123; // What happens here? console.log(a[b]); // Output?
Jawapan:
Output: [1, 2, 3, 4]
Penjelasan: Kedua-dua a dan b merujuk kepada tatasusunan yang sama dalam ingatan. Apabila anda menolak 4 ke dalam b, ia turut mempengaruhi a.
Atas ialah kandungan terperinci Soalan temuduga teknikal javascript yang paling mencabar dan paling sukar dengan penyelesaian.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Mata utama yang dipertingkatkan penandaan berstruktur dengan JavaScript dapat meningkatkan kebolehcapaian dan pemeliharaan kandungan laman web sambil mengurangkan saiz fail. JavaScript boleh digunakan secara berkesan untuk menambah fungsi secara dinamik ke elemen HTML, seperti menggunakan atribut CITE untuk memasukkan pautan rujukan secara automatik ke dalam rujukan blok. Mengintegrasikan JavaScript dengan tag berstruktur membolehkan anda membuat antara muka pengguna yang dinamik, seperti panel tab yang tidak memerlukan penyegaran halaman. Adalah penting untuk memastikan bahawa peningkatan JavaScript tidak menghalang fungsi asas laman web; Teknologi JavaScript Lanjutan boleh digunakan (

Set data sangat penting dalam membina model API dan pelbagai proses perniagaan. Inilah sebabnya mengapa mengimport dan mengeksport CSV adalah fungsi yang sering diperlukan. Dalam tutorial ini, anda akan belajar cara memuat turun dan mengimport fail CSV dalam sudut


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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver CS6
Alat pembangunan web visual

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.