Klik⭐jika Anda menyukai proyek ini dan ikuti @SudheerJonna untuk pembaruan lainnya. Pertanyaan pengkodean tersedia. Versi PDF dan Epub tersedia di tab tindakan Show
Jelajahi sumber daya gratis terbaik untuk mempelajari JavaScript. Bangun proyek Anda sendiri & dapatkan sertifikasi gratis hanya dalam 25 hari
Pertanyaan Wawancara JavaScript. Pertanyaan dan Jawaban Wawancara JavaScript Teratas Daftar isiTIDAK. Questions123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449
Beberapa perbedaan utama antara fungsi murni dan tidak murni adalah sebagai berikut, Fungsi murni Fungsi tidak murni Tidak memiliki efek samping Menyebabkan efek samping Selalu mengembalikan hasil yang sama Mengembalikan hasil yang berbeda pada setiap panggilan Mudah dibaca dan di-debug Sulit dibaca dan di-debug karena dipengaruhi oleh kode eksternalfunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_39
Ekspresi dalam javascript dapat diganti nilainya tanpa mempengaruhi perilaku program yang disebut transparansi referensial. Fungsi murni secara referensi transparan function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_40 function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_39
Efek samping adalah modifikasi status melalui pemanggilan fungsi atau ekspresi. Efek samping ini membuat fungsi kita tidak murni secara default. Di bawah ini adalah beberapa efek samping yang membuat fungsi tidak murni,
function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_42
Latihan Pengodean1. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_46
Menjawab. 4Deklarasi fungsi diangkat mirip dengan variabel apa pun. Jadi penempatan untuk deklarasi fungsi class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_71 tidak ada bedanya 2. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_47
Menjawab. 3Tentu saja nilai pengembalian class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_72 adalah 1 karena operator kenaikan. Tapi pernyataan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_73 mendeklarasikan variabel lokal x. Sedangkan y dideklarasikan sebagai variabel global secara tidak sengaja. Pernyataan ini setara dengan, function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_48 Karena variabel cakupan blok x tidak terdefinisi di luar fungsi, jenisnya juga tidak terdefinisi. Sedangkan variabel global class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");74 tersedia di luar fungsi, nilainya 0 dan tipenya adalah angka 3. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_49
Menjawab. 4Urutan pernyataan didasarkan pada mekanisme event loop. Urutan pernyataan mengikuti urutan di bawah ini,
4. Apa output dari pemeriksaan kesetaraan di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_50
Menjawab. 1Ini karena masalah matematika float point. Karena angka floating point dikodekan dalam format biner, operasi penambahan pada angka tersebut menyebabkan kesalahan pembulatan. Oleh karena itu, perbandingan floating point tidak memberikan hasil yang diharapkan. Anda dapat menemukan detail lebih lanjut tentang penjelasannya di sini 0. 300000000000000004. com/ 5. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_51
Menjawab. 4Poin utama dalam cuplikan kode di atas adalah,
Dengan kata lain, sama dengan function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_52 Catatan. Ini mengembalikan 1 objek untuk browser MS Edge 6. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_53
Menjawab. 3Ini adalah masalah titik koma. Biasanya titik koma bersifat opsional dalam JavaScript. Jadi jika ada pernyataan (dalam hal ini, kembali) titik koma yang hilang, maka secara otomatis dimasukkan segera. Oleh karena itu, fungsi dikembalikan sebagai tidak terdefinisi Sedangkan jika kurung kurawal buka bersamaan dengan kata kunci return maka fungsinya akan dikembalikan seperti yang diharapkan function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_54 7. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();55
Menjawab. 3Operator class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_78 akan menghapus properti objek tetapi tidak akan mengindeks ulang array atau mengubah panjangnya. Jadi jumlah atau elemen atau panjang array tidak akan diubah. Jika Anda mencoba untuk mencetak myChars maka Anda dapat mengamati bahwa itu tidak menetapkan nilai yang tidak ditentukan, melainkan properti dihapus dari array. Versi terbaru Chrome menggunakan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_79 alih-alih class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 untuk memperjelas perbedaannya 8. Apa output dari kode di bawah ini di Chrome terbarufunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_56
Menjawab. 2Versi chrome terbaru menampilkan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");81(diisi dengan lubang) menggunakan notasi xn kosong ini. Sedangkan versi yang lebih lama memiliki notasi x n yang tidak terdefinisi. Note. Versi terbaru FF menampilkan notasi class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_82 9. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_57
Menjawab. 1ES6 menyediakan definisi metode dan singkatan properti untuk objek. Jadi prop2 dan prop3 diperlakukan sebagai nilai fungsi biasa 10. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_58
Menjawab. 2Poin pentingnya adalah jika pernyataan tersebut berisi operator yang sama (mis. g, < atau >) maka dapat dievaluasi dari kiri ke kanan. Pernyataan pertama mengikuti urutan di bawah ini,
Whereas the second statement follows the below order,
11. Apa output dari kode di bawah ini dalam mode non-ketatfunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_59
Menjawab. 2Dalam mode non-ketat, fungsi JavaScript reguler memungkinkan parameter bernama duplikat. Cuplikan kode di atas memiliki parameter duplikat pada parameter ke-1 dan ke-3. Nilai parameter pertama dipetakan ke argumen ketiga yang diteruskan ke fungsi. Hence, the 3rd argument overrides the first parameter Catatan. Dalam mode ketat, parameter duplikat akan menimbulkan Kesalahan Sintaks 12. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_60
Menjawab. 3Tidak seperti fungsi biasa, fungsi panah tidak mengizinkan parameter duplikat baik dalam mode ketat maupun non-ketat. Jadi Anda bisa melihat // Create a new instance using function prototype. var newInstance = Object.create(func.prototype) // Call the function var result = func.call(newInstance, x, y, z), // If the result is a non-null object then use it otherwise just use the new instance. console.log(result && typeof result === 'object' ? result : newInstance);_45 di konsol 13. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_61
Menjawab. 1Fungsi panah tidak memiliki class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_86 binding. Jadi setiap referensi ke variabel class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");87 mencoba untuk menyelesaikan ke pengikatan dalam lingkungan yang tertutup secara leksikal. Dalam hal ini, variabel argumen tidak didefinisikan di luar fungsi panah. Hence, you will receive a reference error Sedangkan fungsi normal memberikan jumlah argumen yang diteruskan ke fungsi function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_62 Tapi Jika Anda masih ingin menggunakan fungsi panah maka operator istirahat pada argumen memberikan argumen yang diharapkan function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_63 14. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_64
Menjawab. 2Agar konsisten dengan fungsi seperti class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");88, nama metode standar untuk memangkas spasi dianggap sebagai class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");89. Karena alasan kompatibilitas web, nama metode lama 'trimLeft' masih berfungsi sebagai alias untuk 'trimStart'. Oleh karena itu, prototipe untuk 'trimLeft' selalu 'trimStart' 15. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_65
Menjawab. 4-Infinity adalah pembanding awal karena hampir semua nilai lainnya lebih besar. Jadi ketika tidak ada argumen yang diberikan, -Infinity akan dikembalikan. Catatan. Zero number of arguments is a valid case 16. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_66
Menjawab. 1Sesuai algoritma perbandingan dalam spesifikasi ECMAScript (ECMA-262), ekspresi di atas diubah menjadi JS seperti di bawah ini function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_67 Jadi tidak masalah tentang kurung angka ([]) di sekitar angka, itu selalu dikonversi menjadi angka dalam ekspresi 17. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_68
Menjawab. 2Operator penggabungan (+) berlaku untuk tipe angka dan string. Jadi jika ada operan bertipe string maka kedua operan digabungkan sebagai string. Whereas subtract(-) operator tries to convert the operands as number type 18. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_69
Menjawab. 1Dalam operator pembanding, ekspresi class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");90 dikonversi menjadi Number([0]. Nilai dari(). toString()) yang diselesaikan menjadi false. Sedangkan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_90 hanya menjadi nilai kebenaran tanpa konversi apapun karena tidak ada operator pembanding 19. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_70
Menjawab. 4Operator + tidak dimaksudkan atau didefinisikan untuk array. Jadi itu mengubah array menjadi string dan menggabungkannya 20. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_71
Menjawab. 1Karena class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_10 objek adalah kumpulan nilai unik, itu tidak akan memungkinkan nilai duplikat dalam koleksi. Pada saat yang sama, ini adalah struktur data yang peka terhadap huruf besar-kecil 21. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_72
Menjawab. 2JavaScript mengikuti standar spesifikasi IEEE 754. Sesuai spesifikasi ini, NaN tidak pernah sama untuk angka floating-point 22. What is the output of below codefunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_73
Menjawab. 4class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");_21 menggunakan operator kesetaraan yang ketat(===) secara internal dan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");94 dievaluasi menjadi false. Karena indexOf tidak akan dapat menemukan NaN di dalam array, ia selalu mengembalikan -1. Tetapi Anda dapat menggunakan metode class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");95 untuk mengetahui indeks NaN dalam array atau Anda dapat menggunakan class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");96 untuk memeriksa apakah NaN ada dalam array atau tidak function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_74 23. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_75
Menjawab. 3Saat menggunakan parameter istirahat, tanda koma tidak diperbolehkan dan akan memunculkan SyntaxError. Jika Anda menghapus tanda koma maka ini akan menampilkan jawaban pertama function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_76 25. What is the output of below codefunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_77
Menjawab. 1Fungsi asinkron selalu mengembalikan janji. Tetapi bahkan jika nilai kembalian dari fungsi async bukan janji secara eksplisit, itu akan dibungkus secara implisit dengan janji. Fungsi async di atas setara dengan ekspresi di bawah ini, function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_78 26. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_79
Menjawab. 4Ekspresi menunggu mengembalikan nilai 10 dengan resolusi janji dan kode setelah setiap ekspresi menunggu dapat dianggap ada dalam panggilan balik function func() {}; new func(x, y, z);72. Dalam hal ini, tidak ada ekspresi pengembalian di akhir fungsi. Hence, the default return value of class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 is returned as the resolution of the promise. Fungsi async di atas setara dengan ekspresi di bawah ini, function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_80 27. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_81
Menjawab. 1Meskipun "processArray" adalah fungsi asinkron, fungsi anonim yang kami gunakan untuk class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");99 bersifat sinkron. Jika Anda menggunakan await di dalam fungsi sinkron maka itu akan memunculkan kesalahan sintaksis 28. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_82
Menjawab. 4Metode forEach tidak akan menunggu sampai semua item selesai tetapi hanya menjalankan tugas dan melanjutkan. Oleh karena itu, pernyataan terakhir ditampilkan terlebih dahulu diikuti dengan urutan resolusi janji Tapi Anda mengontrol urutan array menggunakan for. lingkaran, function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_83 29. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_84
Menjawab. 1Set memiliki sedikit pengecualian dari pemeriksaan kesetaraan,
30. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_85
Menjawab. 3Simbol mengikuti konvensi di bawah ini,
Catatan. Deskripsi simbol hanya berguna untuk keperluan debugging 31. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_86
Menjawab. 1var object = new (function () { this.name = "Sudheer"; })();_01 hanyalah fungsi standar dan bukan konstruktor objek (tidak seperti primitif lainnya Boolean baru, String baru, dan Angka baru). Jadi jika Anda mencoba memanggilnya dengan operator baru akan menghasilkan TypeError 32. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_87
Menjawab. 4Nilai pengembalian var object = new (function () { this.name = "Sudheer"; })();02 atau var object = new (function () { this.name = "Sudheer"; })();03 selalu merupakan nilai kebenaran (baik "angka" atau "string"). Itu. operator beroperasi pada var object = new (function () { this.name = "Sudheer"; })();02 atau var object = new (function () { this.name = "Sudheer"; })();03, mengubahnya menjadi nilai boolean. Karena nilai var object = new (function () { this.name = "Sudheer"; })();06 dan var object = new (function () { this.name = "Sudheer"; })();07 salah, kondisi if gagal, dan kontrol beralih ke blok else Untuk membuat. operator beroperasi pada persamaan persamaan, seseorang perlu menambahkan tanda kurung function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_88 Atau cukup gunakan operator ketidaksetaraan function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_89 33. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_90
Menjawab. 2Simbol memiliki batasan di bawah ini,
34. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_91
Menjawab. 2Menggunakan konstruktor, class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");48 merujuk ke konstruktor (menunjuk ke definisi kelas dari kelas yang diinisialisasi) yang langsung dipanggil oleh new. Ini juga berlaku untuk kasus jika konstruktor berada di kelas induk dan didelegasikan dari konstruktor anak 35. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_92
Menjawab. 4Itu melempar kesalahan sintaksis karena elemen lainnya tidak boleh memiliki tanda koma. Anda harus selalu mempertimbangkan untuk menggunakan operator istirahat sebagai elemen terakhir 36. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_93
Menjawab. 1Properti objek mengikuti aturan di bawah ini,
37. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_94
Menjawab. 2Jika Anda mengabaikan penugasan sisi kanan untuk objek perusak, fungsi akan mencari setidaknya satu argumen untuk diberikan saat dipanggil. Kalau tidak, Anda akan menerima kesalahan var object = new (function () { this.name = "Sudheer"; })();_10 seperti yang disebutkan di atas Anda dapat menghindari kesalahan dengan salah satu dari perubahan di bawah ini,
function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_95
function Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_96 38. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_97
Menjawab. 1Dimungkinkan untuk menggabungkan penghancuran Array dan Objek. Dalam hal ini, elemen ketiga dalam array props diakses terlebih dahulu diikuti oleh properti nama dalam objek 39. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_98
Menjawab. 3Jika argumen fungsi diatur secara implisit (tidak meneruskan argumen) atau secara eksplisit menjadi tidak terdefinisi, nilai argumen adalah parameter default. Sedangkan untuk nilai palsu lainnya ('' atau null), nilai argumen diteruskan sebagai parameter Oleh karena itu, hasil pemanggilan fungsi dikategorikan sebagai berikut,
40. Apa output dari kode di bawah inifunction Person() {} Person.prototype.name = "Sudheer"; var object = new Person();_99
Menjawab. 2Karena argumen default dievaluasi pada waktu panggilan, objek baru dibuat setiap kali fungsi dipanggil. Jadi dalam hal ini, array baru dibuat dan sebuah elemen didorong ke array kosong default 41. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_00
Menjawab. 2Karena parameter yang ditentukan sebelumnya tersedia untuk parameter default selanjutnya, cuplikan kode ini tidak menimbulkan kesalahan apa pun 42. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_01
Menjawab. 1Fungsi dan variabel yang dideklarasikan dalam badan fungsi tidak dapat dirujuk dari penginisialisasi parameter nilai default. Jika Anda masih mencoba untuk mengakses, itu melempar ReferenceError(i. e, var object = new (function () { this.name = "Sudheer"; })();_11 tidak ditentukan) 43. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_02
Menjawab. 3Parameter rest digunakan untuk menampung parameter yang tersisa dari suatu fungsi dan menjadi array kosong jika argumen tidak diberikan 44. What is the output of below codefunction func() {}; new func(x, y, z);_03
Menjawab. 2Sintaks spread hanya dapat diterapkan pada objek yang dapat diubah. Secara default, Objek tidak dapat diubah, tetapi menjadi dapat diubah saat digunakan dalam Array, atau dengan fungsi berulang seperti var object = new (function () { this.name = "Sudheer"; })();12. Jika Anda masih mencoba melakukannya, itu masih melempar var object = new (function () { this.name = "Sudheer"; })();13 45. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_04
Menjawab. 4Generator bukan tipe yang dapat dibangun. Tetapi jika Anda tetap melakukannya, akan ada pesan kesalahan yang mengatakan "TypeError. myGenFunc bukan konstruktor" 46. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);05
Menjawab. 1Pernyataan pengembalian dalam fungsi generator akan membuat generator selesai. Jika suatu nilai dikembalikan, itu akan ditetapkan sebagai properti nilai dari objek dan properti done menjadi true. Saat generator selesai, panggilan next() berikutnya mengembalikan objek dari formulir ini. var object = new (function () { this.name = "Sudheer"; })();_14 47. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_06
Menjawab. 4Generator tidak boleh digunakan kembali setelah iterator ditutup. Saya. e, Setelah keluar dari loop (setelah selesai atau menggunakan break & return), generator ditutup dan mencoba mengulanginya lagi tidak menghasilkan hasil lagi. Karenanya, loop kedua tidak mencetak nilai apa pun 48. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_07
Menjawab. 1Jika Anda menggunakan nomor yang tidak valid (di luar rentang 0-7) dalam literal oktal, JavaScript akan memunculkan SyntaxError. Di ES5, ini memperlakukan literal oktal sebagai angka desimal 49. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_08
Menjawab. 2Unlike function declarations, class declarations are not hoisted. i. e, First You need to declare your class and then access it, otherwise it will throw a ReferenceError "Uncaught ReferenceError. Square is not defined" Note. Class expressions also applies to the same hoisting restrictions of class declarations 50. What is the output of below codefunction func() {}; new func(x, y, z);09
Menjawab. 4When a regular or prototype method is called without a value for this, the methods return an initial this value if the value is not undefined. Otherwise global window object will be returned. In our case, the initial function func() {}; new func(x, y, z);48 value is undefined so both methods return window objects 51. What is the output of below codefunction func() {}; new func(x, y, z);10
Menjawab. 3Kata kunci super digunakan untuk memanggil metode superclass. Tidak seperti bahasa lain, doa super tidak perlu menjadi pernyataan pertama. Saya. e, Pernyataan akan dieksekusi dalam urutan kode yang sama 52. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_11
Menjawab. 2Meskipun kami menggunakan variabel konstanta, isinya adalah objek dan konten objek (mis. g properti) dapat diubah. Oleh karena itu, perubahan akan berlaku dalam kasus ini 53. Apa output dari kode di bawah inifunction func() {}; new func(x, y, z);_12
Menjawab. 2Emoji adalah unicode dan unicode untuk simbol senyum adalah "U+1F642". The unicode comparision of same emojies is equivalent to string comparison. Oleh karena itu, output selalu benar 54. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_13
Menjawab. 1Operator typeof pada primitif apa pun mengembalikan nilai string. Jadi, bahkan jika Anda menerapkan rangkaian operator typeof pada nilai kembalian, itu selalu berupa string 55. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_14
Menjawab. 1
Karenanya blok kode di atas selalu masuk ke bagian if 55. Apa output dari kode di bawah ini dalam mode tidak ketat?function func() {}; new func(x, y, z);_15
Menjawab. 4Ini mengembalikan undefined untuk mode non-ketat dan mengembalikan Error untuk mode ketat. Dalam mode non-ketat, objek pembungkus akan dibuat dan mendapatkan properti yang disebutkan. Tetapi objek tersebut menghilang setelah mengakses properti di baris berikutnya 56. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_16
Menjawab. 111 dan 10 dicatat ke konsol innerFunc adalah penutupan yang menangkap variabel hitungan dari outerscope. Saya. e, 10. Tetapi kondisional memiliki variabel lokal lain var object = new (function () { this.name = "Sudheer"; })();16 yang menimpa variabel ourter var object = new (function () { this.name = "Sudheer"; })();16. Jadi konsol pertama. log menampilkan nilai 11. Sedangkan konsol kedua. log log 10 dengan menangkap variabel count dari outerscope 57. Apa output dari kode di bawah ini?
Alasan. Operator mengembalikan nilai operan palsu pertama yang ditemui saat mengevaluasi dari kiri ke kanan, atau nilai operan terakhir jika semuanya benar Catatan. Di bawah nilai ini dianggap nilai palsu
58. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_17
Menjawab. 3Array memiliki implementasi sendiri dari metode var object = new (function () { this.name = "Sudheer"; })();_18 yang mengembalikan daftar elemen yang dipisahkan koma. Jadi cuplikan kode di atas mengembalikan nilai true. Untuk menghindari konversi tipe array, kita harus menggunakan === untuk perbandingan 59. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_18
Menjawab. 2Mengangkat akan memindahkan variabel dan fungsi menjadi top of scope. Meskipun getMessage adalah fungsi panah, fungsi di atas akan dianggap sebagai variabel karena deklarasi atau penugasan variabelnya. Jadi variabel akan memiliki nilai yang tidak ditentukan dalam fase memori dan melontarkan kesalahan ' var object = new (function () { this.name = "Sudheer"; })();19 bukan fungsi' pada fase eksekusi kode 60. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);19
Menjawab. 3Meskipun sebuah janji diselesaikan dengan segera, itu tidak akan segera dieksekusi karena itu. lalu/tangkap/akhirnya penangan atau panggilan balik (alias tugas) didorong ke antrian. Setiap kali mesin JavaScript bebas dari program saat ini, ia menarik tugas dari antrean dan menjalankannya. Inilah alasan mengapa pernyataan terakhir dicetak terlebih dahulu sebelum log penangan janji Catatan. Kami menyebut antrian di atas sebagai "Antrian MikroTask" 61. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_20
Menjawab. 4Ketika JavaScript menemukan jeda baris tanpa titik koma, pengurai JavaScript akan secara otomatis menambahkan titik koma berdasarkan seperangkat aturan yang disebut var object = new (function () { this.name = "Sudheer"; })();26 yang menentukan apakah jeda baris sebagai akhir pernyataan atau tidak menyisipkan titik koma. Tapi itu tidak mengasumsikan titik koma sebelum tanda kurung siku [. ]. So the first two lines considered as a single statement as below function func() {}; new func(x, y, z);_21 Oleh karena itu, tidak akan ada properti yang tidak dapat dibaca dari kesalahan yang tidak terdefinisi saat menerapkan tanda kurung siku pada fungsi log 62. Tulis fungsi yang mengembalikan warna HEX acakSolusi 1 (Generasi berulang)function func() {}; new func(x, y, z);_22Solusi 2 (Satu baris) function func() {}; new func(x, y, z);_23 63. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_24
Menjawab. 1In JavaScript, var object = new (function () { this.name = "Sudheer"; })();27 is not considered as a reserved keyword. Jadi deklarasi variabel dengan var object = new (function () { this.name = "Sudheer"; })();_27 diterima dan mencetak nilai array var object = new (function () { this.name = "Sudheer"; })();27 menggunakan for. dari lingkaran Tetapi jika Anda menggunakan kata kunci yang dipesan seperti var object = new (function () { this.name = "Sudheer"; })();30 maka akan ada kesalahan sintaks yang mengatakan var object = new (function () { this.name = "Sudheer"; })();31, function func() {}; new func(x, y, z);_25 64. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_26
Menjawab. 2Secara default, metode pengurutan mengurutkan elemen menurut abjad. Ini karena elemen dikonversi menjadi string dan string dibandingkan dalam urutan unit kode UTF-16. Karenanya, Anda akan melihat angka-angka di atas tidak diurutkan seperti yang diharapkan. Untuk mengurutkan secara numerik, berikan saja fungsi pembanding yang menangani pengurutan numerik function func() {}; new func(x, y, z);_27 Catatan. Sort() metode mengubah array asli 65. Apa urutan output dari kode di bawah ini?function func() {}; new func(x, y, z);_28
Menjawab. 4Ketika mesin JavaScript mem-parsing kode di atas, dua pernyataan pertama bersifat asinkron yang akan dieksekusi kemudian dan pernyataan ketiga adalah pernyataan sinkron yang akan dipindahkan ke callstack, dieksekusi dan mencetak angka 3 di konsol. Selanjutnya, Promise adalah native di ES6 dan akan dipindahkan ke antrean Job yang memiliki prioritas lebih tinggi daripada antrean panggilan balik dalam urutan eksekusi. Akhirnya, karena setTimeout adalah bagian dari WebAPI, fungsi panggilan balik dipindahkan ke antrean panggilan balik dan dijalankan. Oleh karena itu, Anda akan melihat nomor 2 dicetak terlebih dahulu diikuti oleh 1 66. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_29
Menjawab. 4IIFE (Ekspresi Fungsi Segera Dipanggil) sama seperti ekspresi fungsi lainnya yang tidak akan diangkat. Oleh karena itu, akan ada kesalahan referensi untuk panggilan pesan. Perilaku akan sama dengan ekspresi fungsi message1 di bawah ini, function func() {}; new func(x, y, z);_30 67. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_31
Menjawab. 3Sebagai bagian dari pengangkatan, awalnya Mesin JavaScript atau kompiler akan menyimpan fungsi pertama di memori heap tetapi kemudian menulis ulang atau mengganti dengan konten fungsi yang didefinisikan ulang 68. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_32
Menjawab. 3Due to hositing feature, the variables declared with function func() {}; new func(x, y, z);53 will have class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 value in the creation phase so the outer variable var object = new (function () { this.name = "Sudheer"; })();34 will get same class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 value. Tetapi setelah beberapa baris kode, mesin JavaScript menemukan panggilan fungsi baru ( var object = new (function () { this.name = "Sudheer"; })();36) untuk memperbarui kota saat ini dengan deklarasi ulang function func() {}; new func(x, y, z);53. Karena setiap pemanggilan fungsi akan membuat konteks eksekusi baru, variabel yang sama akan memiliki nilai class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 sebelum deklarasi dan nilai baru( var object = new (function () { this.name = "Sudheer"; })();39) setelah deklarasi. Oleh karena itu, nilai class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");80 cetak terlebih dahulu diikuti dengan nilai baru var object = new (function () { this.name = "Sudheer"; })();39 dalam fase eksekusi 69. Apa output dari kode di bawah ini secara berurutan?function func() {}; new func(x, y, z);_33
Menjawab. 1Setiap konteks (global atau fungsional) memiliki lingkungan variabelnya sendiri dan tumpukan panggilan variabel dalam urutan LIFO. Jadi Anda dapat melihat nilai variabel pesan dari fungsi kedua, pertama dalam urutan diikuti oleh nilai variabel pesan konteks global di bagian akhir 70. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_34
Menjawab. 1Panggilan fungsi var object = new (function () { this.name = "Sudheer"; })();42 tidak akan menjadi bagian dari rantai lingkup dan memiliki konteks eksekusi sendiri dengan lingkungan variabel terlampir. Saya. e, Itu tidak akan diakses dari konteks global. Hence, there will be an error while invoking the function as var object = new (function () { this.name = "Sudheer"; })();43 71. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_35
Menjawab. 4function func() {}; new func(x, y, z);48 kata kunci adalah ruang lingkup dinamis tetapi tidak ruang lingkup leksikal. In other words, it doesn't matter where function func() {}; new func(x, y, z);48 has been written but how it has been invoked really matter. Dalam cuplikan kode di atas, objek var object = new (function () { this.name = "Sudheer"; })();_46 memanggil fungsi var object = new (function () { this.name = "Sudheer"; })();47 sehingga kata kunci function func() {}; new func(x, y, z);48 mengacu pada objek var object = new (function () { this.name = "Sudheer"; })();46 tetapi var object = new (function () { this.name = "Sudheer"; })();50 telah dipanggil oleh fungsi var object = new (function () { this.name = "Sudheer"; })();47 dan function func() {}; new func(x, y, z);48 akan memiliki objek var object = new (function () { this.name = "Sudheer"; })();_53 default Pit fall di atas diperbaiki dengan tiga cara,
function func() {}; new func(x, y, z);36 The next two solutions have been used before ES6 introduced
function func() {}; new func(x, y, z);_37
function func() {}; new func(x, y, z);_38 72. What is the output of below code?function func() {}; new func(x, y, z);_39
Menjawab. 3In JavaScript, primitives are immutable i. e. there is no way to change a primitive value once it gets created. So when you try to update the string's first character, there is no change in the string value and prints the same initial value var object = new (function () { this.name = "Sudheer"; })();66. Whereas in the later example, the concatenated value is re-assigned to the same variable which will result into creation of new memory block with the reference pointing to var object = new (function () { this.name = "Sudheer"; })();67 value and the old memory block value( var object = new (function () { this.name = "Sudheer"; })();68) will be garbage collected 73. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_40
Menjawab. 2In JavaScript, the variables such as objects, arrays and functions comes under pass by reference. Saat Anda mencoba membandingkan dua objek dengan konten yang sama, itu akan membandingkan alamat memori atau referensi dari variabel tersebut. Variabel-variabel ini selalu membuat blok memori terpisah sehingga perbandingannya selalu akan mengembalikan nilai palsu 74. What is the output of below code?function func() {}; new func(x, y, z);_41
Menjawab. 3The variable var object = new (function () { this.name = "Sudheer"; })();69 is still treated as closure(since it has been used in inner function) eventhough it has been declared after setTimeout function. The function with in setTimeout function will be sent to WebAPI and the variable declaration executed with in 5 seconds with the assigned value. Karenanya, teks yang dideklarasikan untuk variabel akan ditampilkan 75. What is the output of below code?function func() {}; new func(x, y, z);_42
Menjawab. 1Eventhough both variables class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");62 and // Create a new instance using function prototype. var newInstance = Object.create(func.prototype) // Call the function var result = func.call(newInstance, x, y, z), // If the result is a non-null object then use it otherwise just use the new instance. console.log(result && typeof result === 'object' ? result : newInstance);18 refer a number value, the first declaration is based on constructor function and the type of the variable is going to be var object = new (function () { this.name = "Sudheer"; })();72 type. Sedangkan deklarasi kedua adalah penugasan primitif dengan angka dan tipenya adalah tipe var object = new (function () { this.name = "Sudheer"; })();73. Oleh karena itu, operator kesetaraan var object = new (function () { this.name = "Sudheer"; })();_74 akan menampilkan nilai class Person { constructor(name) { this.name = name; } } var object = new Person("Sudheer");08 76. Apa jenis fungsi di bawah ini?function func() {}; new func(x, y, z);_43
Menjawab. 2Meskipun fungsi di atas mengembalikan hasil yang sama untuk argumen (input) yang sama yang diteruskan dalam fungsi, pernyataan var object = new (function () { this.name = "Sudheer"; })();76 menyebabkan fungsi memiliki efek samping karena memengaruhi status kode eksternal. Saya. e, status objek var object = new (function () { this.name = "Sudheer"; })();_77 dan bergantung padanya untuk melakukan pekerjaan. Oleh karena itu, fungsi di atas dianggap sebagai fungsi tidak murni 77. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_44
Menjawab. 2Janji-janji di atas diselesaikan pada saat yang sama tetapi salah satunya diselesaikan dan yang lainnya ditolak. Ketika Anda menggunakan metode var object = new (function () { this.name = "Sudheer"; })();_78 pada janji-janji ini, hasilnya akan disingkat dengan melemparkan kesalahan karena penolakan pada janji kedua. Tetapi Jika Anda menggunakan metode var object = new (function () { this.name = "Sudheer"; })();_79 maka hasil dari kedua janji tersebut akan dikembalikan terlepas dari status janji yang diselesaikan atau ditolak tanpa menimbulkan kesalahan apa pun function func() {}; new func(x, y, z);_45 78. Apa output dari kode di bawah ini?function func() {}; new func(x, y, z);_46
Menjawab. 3Jika Anda memasukkan metode // Create a new instance using function prototype. var newInstance = Object.create(func.prototype) // Call the function var result = func.call(newInstance, x, y, z), // If the result is a non-null object then use it otherwise just use the new instance. console.log(result && typeof result === 'object' ? result : newInstance);76 dan var object = new (function () { this.name = "Sudheer"; })();81 di dalam klausa try dan pengecualian dilemparkan, klausa catch tidak akan menangkap salah satu dari mereka. Ini karena mencoba. pernyataan catch bekerja secara sinkron, dan fungsi dalam kode di atas dijalankan secara asinkron setelah jangka waktu tertentu. Karenanya, Anda akan melihat pengecualian runtime tanpa mengetahui kesalahannya. Untuk mengatasi masalah ini, Anda harus mencoba. tangkap blok di dalam fungsi seperti di bawah ini, function func() {}; new func(x, y, z);_47 Anda dapat menggunakan fungsi var object = new (function () { this.name = "Sudheer"; })();_82 dalam promise untuk menghindari masalah ini dengan kode asinkron PenafianPertanyaan yang disediakan dalam repositori ini adalah ringkasan dari pertanyaan yang sering diajukan di banyak perusahaan. Kami tidak dapat menjamin bahwa pertanyaan-pertanyaan ini akan benar-benar ditanyakan selama proses wawancara Anda, Anda juga tidak boleh fokus untuk menghafal semuanya. Tujuan utamanya adalah agar Anda memahami apa yang mungkin ditanyakan oleh beberapa perusahaan — jangan berkecil hati jika Anda tidak mengetahui jawaban untuk semuanya — tidak apa-apa Di mana saya bisa berlatih soal coding JavaScript?Codedamn adalah platform pemrograman interaktif; . Ini menawarkan dua kursus untuk berlatih dan menguasai JavaScript. Salah satunya adalah 50 hari JavaScript. Anda akan mendapatkan satu pertanyaan setiap hari dan tidak perlu menunggu satu hari lagi untuk menyelesaikan pertanyaan kedua.
Bagaimana Anda berlatih pengkodean JavaScript?5 Cara Terbaik untuk Mempelajari JavaScript dengan Cepat . Situs Web dan Kursus Mandiri Buku Kamp Pelatihan Pengodean Pertemuan dan Acara Jejaring Memulai Proyek Anda Sendiri Bagaimana saya bisa berlatih JavaScript setiap hari?Cara Berlatih Javascript Online dan Dapatkan Pengalamannya . Bangun Proyek Javascript. . Meningkatkan Proyek yang Ada Tantangan Kode Lengkap Bergabunglah dengan Proyek Sumber Terbuka Bergabunglah dengan Komunitas Pengkodean Bagikan Perjalanan Belajar Javascript Anda dengan Orang Lain Menulis Artikel Coding dan Berbagi Pengetahuan Bagaimana cara berlatih JavaScript untuk wawancara?Cara mempersiapkan wawancara JavaScript . Langkah 1. Ketahui apa yang perlu Anda pelajari. Anda sudah tahu bahasa pemrograman apa yang akan Anda gunakan, jadi sekarang Anda perlu meneliti aspek apa dari bahasa itu yang akan diuji. . Langkah 2. Membuat rencana. . Langkah 3. Jangan lupakan wawancara perilaku |