Potongan kode javascript untuk wawancara

JavaScript, dibuat oleh Brendan Eich pada tahun 1995, adalah salah satu bahasa pengembangan web yang paling banyak digunakan. It was designed to build dynamic web pages at first. A script is a JS program that may be added to the HTML of any web page. When the page loads, these scripts execute automatically

Show

A language that was originally designed to build dynamic web pages may now be run on the server and on almost any device that has the JavaScript Engine installed

After HTML and CSS, JavaScript is the third biggest web technology. JavaScript is a scripting language that may be used to construct online and mobile apps, web servers, games, and more. JavaScript is an object-oriented programming language that is used to generate websites and applications. It was created with the intention of being used in a browser. Even today, the server-side version of JavaScript known as Node. js may be used to create online and mobile apps, real-time applications, online streaming applications, and videogames. Javascript frameworks, often known as inbuilt libraries, may be used to construct desktop and mobile programs. Developers may save a lot of time on monotonous programming jobs by using these code libraries, allowing them to focus on the production work of development

The InterviewBit team has compiled a thorough collection of top Javascript Interview Questions and Answers to assist you in acing your interview and landing your desired job as a Javascript Developer.  

Crack your next tech interview with confidence

Take a free mock interview, get instant⚡️ feedback and recommendation💡

Events . Powered By

No More Events to show

View All

View All

No More Events to show

View All

View All

No More Events to show

View All

View All

No More Events to show

View All

View All

JavaScript Interview Questions for Freshers

1. What are the different data types present in javascript?

To know the type of a JavaScript variable, we can use the typeof operator

1. Primitive types

String - It represents a series of characters and is written with quotes. A string can be represented using a single or a double quote

Example

var str = "Vivek Singh Bisht"; //using double quotes
var str2 = 'John Doe'; //using single quotes
  • Number - It represents a number and can be written with or without decimals

Example

var x = 3; //without decimal
var y = 3.6; //with decimal
  • BigInt - This data type is used to store numbers which are above the limitation of the Number data type. It can store large integers and is represented by adding “n” to an integer literal

Example

var bigInteger =  234567890123456789012345678901234567890;
  • Boolean - It represents a logical entity and can have only two values . true or false. Booleans are generally used for conditional testing

Example

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
  • Undefined - When a variable is declared but not assigned, it has the value of undefined and it’s type is also undefined

Example

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
  • Null - It represents a non-existent or a invalid value

Example

var z = null;
  • Symbol - It is a new data type introduced in the ES6 version of javascript. It is used to store an anonymous and unique value

Example

var symbol1 = Symbol('symbol');
  • typeof of primitive types
typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol

2. Non-primitive types

  • Primitive data types can store only a single value. To store multiple and complex values, non-primitive data types are used
  • Object - Used to store collection of data
  • Example
// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_

Note- It is important to remember that any data type that is not a primitive data type, is of Object type in javascript

2. Explain Hoisting in javascript

Hoisting is the default behaviour of javascript where all the variable and function declarations are moved on top

Potongan kode javascript untuk wawancara

This means that irrespective of where the variables and functions are declared, they are moved on top of the scope. The scope can be both local and global

Example 1

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;

Contoh 2

var x = 3; //without decimal
var y = 3.6; //with decimal
_0

Example 3

var x = 3; //without decimal
var y = 3.6; //with decimal
1

doSomething(); // Outputs 33 since the local variable “x” is hoisted inside the local scope

Note - Variable initializations are not hoisted, only variable declarations are hoisted

var x = 3; //without decimal
var y = 3.6; //with decimal
2

Note - To avoid hoisting, you can run javascript in strict mode by using “use strict” on top of the code

var x = 3; //without decimal
var y = 3.6; //with decimal
3

3. Why do we use the word “debugger” in javascript?

Debugger untuk browser harus diaktifkan untuk men-debug kode. Debugger bawaan dapat diaktifkan dan dinonaktifkan, mengharuskan pengguna untuk melaporkan kesalahan. Bagian kode yang tersisa harus menghentikan eksekusi sebelum melanjutkan ke baris berikutnya saat melakukan debug

Anda dapat mengunduh versi PDF dari Pertanyaan Wawancara Javascript

Unduh PDF Unduh PDF  

Unduh PDF


Unduhan yang Anda minta sudah siap
Klik di sini untuk mengunduh

4. Perbedaan antara operator “ == “ dan “ === “

Keduanya adalah operator pembanding. Perbedaan antara kedua operator tersebut adalah “==” digunakan untuk membandingkan nilai sedangkan “ === “ digunakan untuk membandingkan nilai dan tipe

Example

var x = 3; //without decimal
var y = 3.6; //with decimal
_4

5. Perbedaan antara kata kunci var dan biarkan dalam javascript

Beberapa perbedaan adalah

  1. Sejak awal, kata kunci 'var' digunakan dalam pemrograman JavaScript sedangkan kata kunci 'biarkan' baru ditambahkan pada tahun 2015
  2. Kata kunci 'Var' memiliki cakupan fungsi. Di mana saja dalam fungsi, variabel yang ditentukan menggunakan var dapat diakses tetapi dalam 'biarkan' ruang lingkup variabel yang dideklarasikan dengan kata kunci 'biarkan' terbatas pada blok yang dideklarasikan. Mari kita mulai dengan Lingkup Blok
  3. Di ECMAScript 2015, let dan const diangkat tetapi tidak diinisialisasi. Mereferensikan variabel di blok sebelum deklarasi variabel menghasilkan ReferenceError karena variabel berada di "zona mati sementara" dari awal blok hingga deklarasi diproses

6. Jelaskan Pemaksaan Tipe Implisit dalam javascript

Pemaksaan tipe implisit dalam javascript adalah konversi otomatis nilai dari satu tipe data ke tipe lainnya. Itu terjadi ketika operan ekspresi memiliki tipe data yang berbeda

  • Pemaksaan tali

Pemaksaan string terjadi saat menggunakan operator '+'. Saat angka ditambahkan ke string, tipe angka selalu dikonversi ke tipe string

Example 1

var x = 3; //without decimal
var y = 3.6; //with decimal
_5

Contoh 2

var x = 3; //without decimal
var y = 3.6; //with decimal
_6

Catatan - Operator ' + ' saat digunakan untuk menambahkan dua angka, menghasilkan angka. Operator ' + ' yang sama ketika digunakan untuk menambahkan dua string, menghasilkan string gabungan

var x = 3; //without decimal
var y = 3.6; //with decimal
_7

Mari kita pahami kedua contoh di mana kita telah menambahkan angka ke sebuah string,

Ketika JavaScript melihat bahwa operan dari ekspresi x + y adalah tipe yang berbeda (satu tipe angka dan yang lainnya tipe string), itu mengubah tipe angka menjadi tipe string dan kemudian melakukan operasi. Karena setelah konversi, kedua variabel bertipe string, operator '+' menampilkan string gabungan "33" pada contoh pertama dan "24Hello" pada contoh kedua

Catatan - Pemaksaan tipe juga terjadi saat menggunakan operator ' - ', tetapi perbedaannya saat menggunakan operator ' - ' adalah, string diubah menjadi angka dan kemudian dilakukan pengurangan

var x = 3; //without decimal
var y = 3.6; //with decimal
_8
  • Pemaksaan Boolean

Paksaan Boolean terjadi saat menggunakan operator logika, operator ternary, pernyataan if, dan pemeriksaan loop. Untuk memahami pemaksaan boolean dalam pernyataan if dan operator, kita perlu memahami nilai benar dan salah

Nilai kebenaran adalah nilai yang akan diubah (dipaksakan) menjadi benar. Nilai palsu adalah nilai yang akan diubah menjadi salah

Semua nilai kecuali false, 0, 0n, -0, “”, null, undefined, dan NaN adalah nilai kebenaran

Jika pernyataan

Example

var x = 3; //without decimal
var y = 3.6; //with decimal
_9
  • Operator logika

Operator logis dalam javascript, tidak seperti operator dalam bahasa pemrograman lain, tidak mengembalikan benar atau salah. Mereka selalu mengembalikan salah satu operan

ATAU (. . ) operator - Jika nilai pertama benar, maka nilai pertama dikembalikan. Jika tidak, selalu nilai kedua dikembalikan

AND ( && ) operator - Jika kedua nilai benar, nilai kedua selalu dikembalikan. Jika nilai pertama salah maka nilai pertama dikembalikan atau jika nilai kedua salah maka nilai kedua dikembalikan

Example

var bigInteger =  234567890123456789012345678901234567890;
0
  • Pemaksaan Kesetaraan

Pemaksaan kesetaraan terjadi saat menggunakan operator ' == '. Seperti yang telah kami nyatakan sebelumnya

Operator ' == ' membandingkan nilai dan bukan tipe

Sementara pernyataan di atas adalah cara sederhana untuk menjelaskan operator ==, itu tidak sepenuhnya benar

Kenyataannya adalah saat menggunakan operator '==', pemaksaan terjadi

Operator '==', mengubah kedua operan menjadi tipe yang sama dan kemudian membandingkannya

Example

var bigInteger =  234567890123456789012345678901234567890;
1

Pemaksaan tidak terjadi saat menggunakan operator '==='. Kedua operan tidak dikonversi ke tipe yang sama dalam kasus operator '==='

Example

var bigInteger =  234567890123456789012345678901234567890;
2

7. Apakah javascript diketik secara statis atau bahasa yang diketik secara dinamis?

JavaScript adalah bahasa yang diketik secara dinamis. Dalam bahasa yang diketik secara dinamis, jenis variabel diperiksa selama run-time berbeda dengan bahasa yang diketik secara statis, di mana jenis variabel diperiksa selama waktu kompilasi

Potongan kode javascript untuk wawancara

Karena javascript adalah bahasa yang diketik secara longgar (dinamis), variabel dalam JS tidak terkait dengan jenis apa pun. Variabel dapat menyimpan nilai dari tipe data apa pun

Misalnya, variabel yang diberi tipe angka dapat diubah menjadi tipe string

var bigInteger =  234567890123456789012345678901234567890;
3

8. Apa itu properti NaN di JavaScript?

Properti NaN mewakili nilai "Bukan Angka". Ini menunjukkan nilai yang bukan angka resmi

typeof dari NaN akan mengembalikan Nomor

Untuk memeriksa apakah suatu nilai adalah NaN, kami menggunakan fungsi isNaN() ,

Fungsi Note- isNaN() mengonversi nilai yang diberikan ke tipe Angka, lalu menyamakannya dengan NaN

var bigInteger =  234567890123456789012345678901234567890;
_4

9. Jelaskan lewat nilai dan lewat referensi

Dalam JavaScript, tipe data primitif dilewatkan dengan nilai dan tipe data non-primitif dilewatkan dengan referensi

Untuk memahami nilai yang diteruskan dan referensi yang diteruskan, kita perlu memahami apa yang terjadi saat kita membuat variabel dan menetapkan nilai padanya,

var bigInteger =  234567890123456789012345678901234567890;
5

Dalam contoh di atas, kami membuat variabel x dan memberinya nilai "2". Di latar belakang, "=" (assign operator) mengalokasikan beberapa ruang di memori, menyimpan nilai "2" dan mengembalikan lokasi ruang memori yang dialokasikan. Oleh karena itu, variabel x pada kode di atas menunjuk ke lokasi ruang memori alih-alih menunjuk ke nilai 2 secara langsung

Menetapkan operator berperilaku berbeda ketika berhadapan dengan tipe data primitif dan non-primitif,

Tetapkan operator yang berurusan dengan tipe primitif

Potongan kode javascript untuk wawancara
var bigInteger =  234567890123456789012345678901234567890;
6

Dalam contoh di atas, operator penugasan mengetahui bahwa nilai yang diberikan ke y adalah tipe primitif (tipe angka dalam kasus ini), jadi ketika kode baris kedua dijalankan, di mana nilai y ditugaskan ke z, operator penugasan mengambil . Oleh karena itu, variabel z tidak menunjuk ke lokasi variabel y, melainkan menunjuk ke lokasi baru di memori

var bigInteger =  234567890123456789012345678901234567890;
7

Dari contoh di atas, kita dapat melihat bahwa tipe data primitif ketika diteruskan ke variabel lain, diteruskan oleh nilai. Alih-alih hanya menetapkan alamat yang sama ke variabel lain, nilainya diteruskan dan ruang memori baru dibuat

Tetapkan operator yang menangani tipe non-primitif

Potongan kode javascript untuk wawancara
var bigInteger =  234567890123456789012345678901234567890;
_8

Dalam contoh di atas, operator penugasan langsung meneruskan lokasi variabel obj ke variabel obj2. Dengan kata lain, referensi dari variabel obj diteruskan ke variabel obj2

var bigInteger =  234567890123456789012345678901234567890;
_9

Dari contoh di atas, kita dapat melihat bahwa saat meneruskan tipe data non-primitif, operator penugasan langsung meneruskan alamat (referensi)

Oleh karena itu, tipe data non-primitif selalu diteruskan dengan referensi

10. Apa itu Fungsi yang Segera Dipanggil dalam JavaScript?

Fungsi yang Segera Dipanggil (dikenal sebagai IIFE dan dilafalkan sebagai IIFY) adalah fungsi yang berjalan segera setelah didefinisikan

Sintaks IIFE

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
0

Untuk memahami IIFE, kita perlu memahami dua set tanda kurung yang ditambahkan saat membuat IIFE

Set kurung pertama

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
1

Saat mengeksekusi kode javascript, setiap kali kompiler melihat kata "fungsi", itu mengasumsikan bahwa kita sedang mendeklarasikan fungsi dalam kode. Oleh karena itu, jika kita tidak menggunakan set tanda kurung pertama, kompiler melontarkan kesalahan karena menganggap kita mendeklarasikan suatu fungsi, dan dengan sintaks mendeklarasikan suatu fungsi, suatu fungsi harus selalu memiliki nama

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
2

Untuk menghapus kesalahan ini, kami menambahkan tanda kurung pertama yang memberi tahu kompiler bahwa fungsi tersebut bukan deklarasi fungsi, melainkan ekspresi fungsi

Set kurung kedua

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
_3

Dari definisi IIFE, kita tahu bahwa kode kita harus dijalankan segera setelah didefinisikan. Suatu fungsi hanya berjalan ketika dipanggil. Jika kita tidak memanggil fungsi, deklarasi fungsi dikembalikan

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
_4

Oleh karena itu untuk menjalankan fungsi tersebut, kami menggunakan tanda kurung kedua

11. Apa yang Anda maksud dengan mode ketat dalam javascript dan karakteristik mode ketat javascript?

Di ECMAScript 5, fitur baru yang disebut JavaScript Strict Mode memungkinkan Anda menulis kode atau fungsi di lingkungan operasional yang "ketat". Dalam kebanyakan kasus, bahasa ini 'tidak terlalu parah' dalam hal melempar kesalahan. Namun, dalam 'Mode ketat', semua bentuk kesalahan, termasuk kesalahan diam, akan dilempar. Akibatnya, debugging menjadi jauh lebih sederhana. Dengan demikian peluang programmer untuk membuat kesalahan diturunkan

Karakteristik mode ketat dalam javascript

  1. Argumen duplikat tidak diizinkan oleh pengembang
  2. Dalam mode ketat, Anda tidak akan dapat menggunakan kata kunci JavaScript sebagai parameter atau nama fungsi
  3. Kata kunci 'gunakan ketat' digunakan untuk menentukan mode ketat di awal skrip. Mode ketat didukung oleh semua browser
  4. Insinyur tidak akan diizinkan membuat variabel global dalam 'Mode Ketat

12. Jelaskan Fungsi Urutan Tinggi dalam javascript

Fungsi yang beroperasi pada fungsi lain, baik dengan menjadikannya sebagai argumen atau mengembalikannya, disebut fungsi tingkat tinggi

Fungsi tingkat tinggi adalah hasil dari fungsi yang menjadi warga negara kelas satu dalam javascript

Contoh fungsi tingkat tinggi

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
5
var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
6

13. Jelaskan kata kunci "ini".

Kata kunci "ini" mengacu pada objek yang merupakan properti dari fungsi tersebut

Nilai kata kunci "ini" akan selalu bergantung pada objek yang menjalankan fungsi tersebut. \

Bingung?

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
_7

Menurut Anda, apa keluaran dari kode di atas?

Catatan - Amati baris tempat kita menjalankan fungsi

Periksa kembali definisinya

Kata kunci "ini" mengacu pada objek yang merupakan properti dari fungsi tersebut

Pada kode di atas, fungsi merupakan properti dari objek yang mana?

Karena fungsi dipanggil dalam konteks global, fungsi tersebut adalah properti dari objek global

Oleh karena itu, output dari kode di atas akan menjadi objek global. Karena kita menjalankan kode di atas di dalam browser, objek global adalah objek jendela

Contoh 2

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
8

Dalam kode di atas, pada saat pemanggilan, fungsi getName adalah properti dari objek obj , oleh karena itu, kata kunci ini akan merujuk ke objek obj, dan hasilnya adalah "vivek"

Example 3

var a = 2;
var b =  3;
var c =  2;
(a == b) // returns false
(a == c) //returns true
_9

Bisakah Anda menebak hasilnya di sini?

Outputnya akan menjadi "akshay"

Meskipun fungsi getName dideklarasikan di dalam objek obj, pada saat pemanggilan, getName() adalah properti dari obj2, oleh karena itu kata kunci “ini” akan merujuk ke obj2

Cara konyol untuk memahami kata kunci “ini” adalah, setiap kali fungsi dipanggil, periksa objek sebelum titik. Nilai dari ini. kata kunci akan selalu menjadi objek sebelum titik

Jika tidak ada objek sebelum titik seperti pada contoh1, nilai kata kunci this akan menjadi objek global

Contoh 4

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_0

Bisakah Anda menebak hasilnya?

Outputnya akan menjadi kesalahan

Meskipun dalam kode di atas, kata kunci ini mengacu pada objek obj2, obj2 tidak memiliki properti “alamat”', sehingga fungsi getAddress melontarkan kesalahan

14. Apa yang Anda maksud dengan Self Invoking Function?

Tanpa diminta, self-invoking expression secara otomatis dipanggil (diinisiasi). Jika ekspresi fungsi diikuti oleh (), maka akan dijalankan secara otomatis. Deklarasi fungsi tidak dapat dipanggil dengan sendirinya

Biasanya, kami mendeklarasikan fungsi dan memanggilnya, namun, fungsi anonim dapat digunakan untuk menjalankan fungsi secara otomatis saat dijelaskan dan tidak akan dipanggil lagi. Dan tidak ada nama untuk fungsi semacam ini

15. Jelaskan metode call(), apply() dan, bind()

1. panggilan()

  • Ini adalah metode yang telah ditentukan sebelumnya dalam javascript
  • Metode ini memanggil metode (fungsi) dengan menentukan objek pemilik
  • Example 1
var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_1
  • call() metode memungkinkan suatu objek untuk menggunakan metode (fungsi) dari objek lain
  • Contoh 2
var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_2
  • call() menerima argumen
var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_3

berlaku()

Metode apply mirip dengan metode call(). Satu-satunya perbedaan adalah bahwa,

metode call() mengambil argumen secara terpisah sedangkan metode apply() mengambil argumen sebagai array

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_4

2. mengikat()

  • Metode ini mengembalikan fungsi baru, di mana nilai kata kunci "ini" akan terikat ke objek pemilik, yang disediakan sebagai parameter
  • Contoh dengan argumen
var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_5

16. Apa perbedaan antara metode exec () dan test () dalam javascript?

  • test() dan exec() adalah metode ekspresi RegExp yang digunakan dalam javascript.  
  • Kami akan menggunakan exec () untuk mencari string untuk pola tertentu, dan jika ditemukan, itu akan mengembalikan pola secara langsung;
  • Kami akan menggunakan tes () untuk menemukan string untuk pola tertentu. Ini akan mengembalikan nilai Boolean 'benar' saat menemukan teks yang diberikan jika tidak, itu akan mengembalikan 'salah'

17. Apa itu kari dalam JavaScript?

Currying adalah teknik lanjutan untuk mengubah fungsi argumen n, menjadi n fungsi dari satu atau lebih sedikit argumen

Contoh fungsi kari

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_6

Sebagai contoh, jika kita memiliki fungsi f(a,b), maka fungsi tersebut setelah di-curry akan diubah menjadi f(a)(b)

Dengan menggunakan teknik currying, kita tidak mengubah fungsionalitas suatu fungsi, kita hanya mengubah cara pemanggilannya

Mari kita lihat kari beraksi

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_7

Seperti yang dapat dilihat pada kode di atas, kita telah mengubah fungsi multiply(a,b) menjadi fungsi curriedMultiply , yang mengambil satu parameter dalam satu waktu

18. Apa keuntungan menggunakan JavaScript Eksternal?

External JavaScript is the JavaScript Code (script) written in a separate file with the extension.js, and then we link that file inside the or element of the HTML file where the code is to be placed. 

Beberapa kelebihan javascript eksternal adalah

  1. Ini memungkinkan perancang dan pengembang web untuk berkolaborasi dalam file HTML dan javascript
  2. Kita dapat menggunakan kembali kode tersebut
  3. Keterbacaan kode sederhana dalam javascript eksternal

19. Jelaskan Scope dan Scope Chain dalam javascript

Cakupan dalam JS menentukan aksesibilitas variabel dan fungsi di berbagai bagian kode seseorang

Secara umum, ruang lingkup akan memberi tahu kami pada bagian kode tertentu, apa saja variabel dan fungsi yang dapat atau tidak dapat kami akses

Ada tiga jenis cakupan di JS

  • Lingkup Global
  • Lingkup Lokal atau Fungsi
  • Lingkup Blok

Lingkup Global. Variabel atau fungsi yang dideklarasikan dalam namespace global memiliki cakupan global, artinya semua variabel dan fungsi yang memiliki cakupan global dapat diakses dari mana saja di dalam kode

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_8

Lingkup Fungsi. Setiap variabel atau fungsi yang dideklarasikan di dalam suatu fungsi memiliki cakupan lokal/fungsi, yang berarti bahwa semua variabel dan fungsi yang dideklarasikan di dalam suatu fungsi, dapat diakses dari dalam fungsi tersebut dan bukan di luarnya

var x; // value of x is undefined
var y = undefined; // we can also set the value of a variable as undefined
_9

Lingkup Blok. Cakupan blok terkait dengan variabel yang dideklarasikan menggunakan let dan const. Variabel yang dideklarasikan dengan var tidak memiliki cakupan blok. Cakupan blok memberi tahu kita bahwa variabel apa pun yang dideklarasikan di dalam blok {}, hanya dapat diakses di dalam blok itu dan tidak dapat diakses di luarnya

var z = null;
0

Rantai Lingkup. Mesin JavaScript juga menggunakan Lingkup untuk menemukan variabel. Mari kita pahami itu menggunakan contoh

var z = null;
1

Seperti yang Anda lihat pada kode di atas, jika mesin javascript tidak menemukan variabel di lingkup lokal, ia akan mencoba memeriksa variabel di lingkup luar. Jika variabel tidak ada di lingkup luar, ia mencoba mencari variabel di lingkup global

Jika variabel juga tidak ditemukan di ruang global, kesalahan referensi akan terjadi

20. Jelaskan Penutupan dalam JavaScript

Closures adalah kemampuan suatu fungsi untuk mengingat variabel dan fungsi yang dideklarasikan dalam lingkup luarnya

var z = null;
2

Mari kita pahami penutupan dengan contoh

var z = null;
_3

Mari kita pahami kode di atas,

Fungsi randomFunc() dijalankan dan mengembalikan fungsi saat kita menugaskannya ke variabel

var z = null;
_4

Fungsi yang dikembalikan kemudian dieksekusi ketika kita memanggil initialiseClosure

var z = null;
5

Baris kode di atas menampilkan "Vivian is awesome" dan ini dimungkinkan karena penutupan

var z = null;
_6

Saat fungsi randomFunc() dijalankan, tampaknya fungsi yang mengembalikan menggunakan variabel obj1 di dalamnya

Oleh karena itu randomFunc(), alih-alih menghancurkan nilai obj1 setelah eksekusi, menyimpan nilai dalam memori untuk referensi lebih lanjut. Ini adalah alasan mengapa fungsi pengembalian dapat menggunakan variabel yang dideklarasikan di lingkup luar bahkan setelah fungsi tersebut sudah dijalankan

Kemampuan fungsi untuk menyimpan variabel untuk referensi lebih lanjut bahkan setelah dijalankan disebut Penutupan

21. Sebutkan beberapa keuntungan dari javascript

Ada banyak keuntungan dari javascript. Beberapa dari mereka adalah

  1. Javascript dijalankan di sisi klien dan juga di sisi server. Ada berbagai Kerangka Frontend yang dapat Anda pelajari dan manfaatkan. Namun, jika Anda ingin menggunakan JavaScript di backend, Anda harus mempelajari NodeJS. Saat ini satu-satunya framework JavaScript yang dapat digunakan di backend
  2. Javascript adalah bahasa yang sederhana untuk dipelajari
  3. Halaman web sekarang memiliki lebih banyak fungsi karena Javascript
  4. Bagi pengguna akhir, Javascript cukup cepat

22. Apa itu prototipe objek?

Semua objek javascript mewarisi properti dari prototipe. Sebagai contoh,

  • Objek tanggal mewarisi properti dari prototipe Tanggal
  • Objek matematika mewarisi properti dari prototipe Matematika
  • Objek array mewarisi properti dari prototipe Array
  • Di atas rantai adalah Objek. prototipe. Setiap prototipe mewarisi properti dan metode dari Objek. prototipe
  • Prototipe adalah cetak biru dari suatu objek. Prototipe memungkinkan kita untuk menggunakan properti dan metode pada objek meskipun properti dan metode tidak ada pada objek saat ini

Mari kita lihat prototipe membantu kita menggunakan metode dan properti

Potongan kode javascript untuk wawancara
var z = null;
_7

Dalam kode di atas, seperti yang dapat dilihat, kami belum mendefinisikan properti atau metode apa pun yang disebut push pada array "arr" tetapi mesin javascript tidak membuat kesalahan

Alasannya adalah penggunaan prototipe. Seperti yang telah kita bahas sebelumnya, objek Array mewarisi properti dari prototipe Array

Mesin javascript melihat bahwa metode push tidak ada pada objek array saat ini dan oleh karena itu, mencari metode push di dalam prototipe Array dan menemukan metode

Setiap kali properti atau metode tidak ditemukan pada objek saat ini, mesin javascript akan selalu mencoba mencari di prototipenya dan jika masih belum ada, ia mencari di dalam prototipe prototipe dan seterusnya.

23. Apa itu callback?

Callback adalah fungsi yang akan dieksekusi setelah fungsi lain dieksekusi. Dalam javascript, fungsi diperlakukan sebagai warga negara kelas satu, mereka dapat digunakan sebagai argumen dari fungsi lain, dapat dikembalikan oleh fungsi lain, dan dapat digunakan sebagai properti objek.

Fungsi yang digunakan sebagai argumen untuk fungsi lain disebut fungsi callback. Contoh

var z = null;
_8
  • Dalam kode di atas, kami melakukan operasi matematika pada jumlah dua angka. Fungsi operationOnSum membutuhkan 3 argumen, angka pertama, angka kedua, dan operasi yang akan dilakukan pada jumlah mereka (panggilan balik)
  • Kedua fungsi divideByHalf dan multiplyBy2 digunakan sebagai fungsi panggilan balik dalam kode di atas
  • Fungsi panggilan balik ini akan dijalankan hanya setelah fungsi operationOnSum dijalankan
  • Oleh karena itu, callback adalah fungsi yang akan dijalankan setelah fungsi lain dijalankan

24. Apa saja jenis kesalahan dalam javascript?

Ada dua jenis kesalahan dalam javascript

  1. Kesalahan sintaks. Kesalahan sintaksis adalah kesalahan atau masalah ejaan dalam kode yang menyebabkan program tidak dapat dijalankan sama sekali atau berhenti berjalan di tengah jalan. Pesan kesalahan biasanya juga disertakan
  2. Kesalahan logika. Kesalahan penalaran terjadi ketika sintaksnya benar tetapi logika atau programnya salah. Aplikasi dijalankan tanpa masalah dalam kasus ini. Namun, temuan output tidak akurat. Ini terkadang lebih sulit untuk diperbaiki daripada masalah sintaks karena aplikasi ini tidak menampilkan sinyal kesalahan untuk kesalahan logika

25. Apa itu memoisasi?

Memoisasi adalah bentuk caching di mana nilai pengembalian suatu fungsi di-cache berdasarkan parameternya. Jika parameter fungsi tersebut tidak diubah, versi cache dari fungsi tersebut dikembalikan
Mari pahami memoisasi, dengan mengonversi fungsi sederhana menjadi fungsi memo

Catatan- Memoisasi digunakan untuk pemanggilan fungsi yang mahal, tetapi dalam contoh berikut, kami mempertimbangkan fungsi sederhana untuk memahami konsep memoisasi dengan lebih baik

Perhatikan fungsi berikut

var z = null;
_9

Pada kode di atas, kita telah menulis sebuah fungsi yang menambahkan parameter ke 256 dan mengembalikannya

Saat kita memanggil fungsi addTo256 lagi dengan parameter yang sama ("20" dalam kasus di atas), kita menghitung hasilnya lagi untuk parameter yang sama

Menghitung hasil dengan parameter yang sama, lagi dan lagi, bukanlah masalah besar dalam kasus di atas, tetapi bayangkan jika fungsi melakukan pekerjaan berat, maka menghitung hasil berulang kali dengan parameter yang sama akan menyebabkan pemborosan

Di sinilah memoisasi masuk, dengan menggunakan memoisasi kita dapat menyimpan (cache) hasil yang dihitung berdasarkan parameter. Jika parameter yang sama digunakan lagi saat menjalankan fungsi, alih-alih menghitung hasilnya, kami langsung mengembalikan nilai yang disimpan (di-cache)

Mari ubah fungsi addTo256 di atas, menjadi fungsi memo

var symbol1 = Symbol('symbol');
_0

Pada kode di atas, jika kita menjalankan fungsi memoizedFunc dengan parameter yang sama, alih-alih menghitung hasilnya lagi, ia mengembalikan hasil yang di-cache

Catatan- Meskipun menggunakan memoisasi menghemat waktu, ini menghasilkan konsumsi memori yang lebih besar karena kami menyimpan semua hasil yang dihitung

26. Apa itu rekursi dalam bahasa pemrograman?

Rekursi adalah teknik untuk mengulangi suatu operasi dengan meminta fungsi memanggil dirinya sendiri berulang kali hingga mencapai hasil

var symbol1 = Symbol('symbol');
_1

Contoh fungsi rekursif

Fungsi berikut menghitung jumlah semua elemen dalam array dengan menggunakan rekursi

var symbol1 = Symbol('symbol');
_2

27. Apa gunanya fungsi konstruktor dalam javascript?

Fungsi konstruktor digunakan untuk membuat objek dalam javascript

Kapan kita menggunakan fungsi konstruktor?

Jika kita ingin membuat banyak objek yang memiliki properti dan metode serupa, fungsi konstruktor digunakan

Catatan- Nama fungsi konstruktor harus selalu ditulis dalam Notasi Pascal. setiap kata harus dimulai dengan huruf kapital

Example

var symbol1 = Symbol('symbol');
_3

Pada kode di atas, kita telah membuat fungsi konstruktor bernama Person. Kapan pun kita ingin membuat objek baru bertipe Person, Kita perlu membuatnya menggunakan kata kunci baru

var symbol1 = Symbol('symbol');
_4

Baris kode di atas akan membuat objek baru bertipe Person. Fungsi konstruktor memungkinkan kita untuk mengelompokkan objek yang serupa

28. Apa itu DOM?

  • DOM adalah singkatan dari Document Object Model. DOM adalah antarmuka pemrograman untuk dokumen HTML dan XML
  • Saat browser mencoba merender dokumen HTML, browser akan membuat objek berdasarkan dokumen HTML yang disebut DOM. Dengan menggunakan DOM ini, kita dapat memanipulasi atau mengubah berbagai elemen di dalam dokumen HTML
  • Contoh bagaimana kode HTML dikonversi menjadi DOM
Potongan kode javascript untuk wawancara

29. Metode mana yang digunakan untuk mengambil karakter dari indeks tertentu?

Fungsi charAt() dari string JavaScript menemukan elemen char pada indeks yang disediakan. Nomor indeks dimulai dari 0 dan berlanjut hingga n-1, Di sini n adalah panjang string. Nilai indeks harus positif, lebih tinggi dari, atau sama dengan panjang string

30. Apa yang dimaksud dengan BOM?

Model Objek Peramban dikenal sebagai BOM. Hal ini memungkinkan pengguna untuk berinteraksi dengan browser. Objek awal browser adalah jendela. Akibatnya, Anda dapat memanggil semua fungsi jendela secara langsung atau dengan mereferensikan jendela. Dokumen, riwayat, layar, navigator, lokasi, dan atribut lainnya tersedia di objek jendela

31. Apa perbedaan antara JavaScript sisi klien dan sisi server?

JavaScript sisi klien terdiri dari dua bagian, bahasa dasar dan objek yang telah ditentukan sebelumnya untuk menjalankan JavaScript di browser. JavaScript untuk klien secara otomatis disertakan dalam halaman HTML. Saat runtime, browser memahami skrip ini

Potongan kode javascript untuk wawancara

JavaScript sisi klien mirip dengan JavaScript sisi server. Ini termasuk JavaScript yang akan dieksekusi di server. Hanya setelah diproses, JavaScript sisi server diterapkan

Pertanyaan Wawancara JavaScript untuk Berpengalaman

32. Apa itu fungsi panah?

Fungsi panah diperkenalkan di javascript versi ES6. Mereka memberi kita sintaks baru dan lebih pendek untuk mendeklarasikan fungsi. Fungsi panah hanya dapat digunakan sebagai ekspresi fungsi

Mari bandingkan deklarasi fungsi normal dan deklarasi fungsi panah secara mendetail

var symbol1 = Symbol('symbol');
_5

Fungsi panah dideklarasikan tanpa kata kunci fungsi. Jika hanya ada satu ekspresi kembali maka kita tidak perlu menggunakan kata kunci kembali juga dalam fungsi panah seperti yang ditunjukkan pada contoh di atas. Selain itu, untuk fungsi yang hanya memiliki satu baris kode, kurung kurawal {} dapat dihilangkan

var symbol1 = Symbol('symbol');
_6

Jika fungsi hanya mengambil satu argumen, maka tanda kurung () di sekitar parameter dapat dihilangkan seperti yang ditunjukkan pada kode di atas.  

var symbol1 = Symbol('symbol');
_7

Perbedaan terbesar antara ekspresi fungsi tradisional dan fungsi panah adalah penanganan kata kunci ini. Menurut definisi umum, kata kunci ini selalu mengacu pada objek yang memanggil fungsi tersebut. Seperti yang Anda lihat pada kode di atas, obj1. valueOfThis() mengembalikan obj1 karena kata kunci ini merujuk ke objek yang memanggil fungsi

Dalam fungsi panah, tidak ada pengikatan kata kunci ini. Kata kunci di dalam fungsi panah ini tidak mengacu pada objek yang memanggilnya. Itu agak mewarisi nilainya dari ruang lingkup induk yang merupakan objek jendela dalam kasus ini. Oleh karena itu, pada kode di atas, obj2. valueOfThis() mengembalikan objek jendela

33. Apa yang dimaksud dengan pola desain prototipe?

Pola Prototipe menghasilkan objek yang berbeda, tetapi alih-alih mengembalikan objek yang tidak diinisialisasi, ia menghasilkan objek yang memiliki nilai yang direplikasi dari template – atau sampel – objek. Juga dikenal sebagai pola Properti, pola Prototipe digunakan untuk membuat prototipe

Pengenalan objek bisnis dengan parameter yang cocok dengan pengaturan default database adalah contoh bagus di mana pola Prototipe berguna. Pengaturan default untuk objek bisnis yang baru dibuat disimpan di objek prototipe

Pola prototipe hampir tidak digunakan dalam bahasa tradisional, namun digunakan dalam pengembangan objek dan templat baru dalam JavaScript, yang merupakan bahasa prototipe.

34. Perbedaan antara mendeklarasikan variabel menggunakan var, let dan const

Sebelum javascript versi ES6, hanya kata kunci var yang digunakan untuk mendeklarasikan variabel. Dengan Versi ES6, kata kunci let dan const diperkenalkan untuk mendeklarasikan variabel

kata kunciconstletvarglobal scopenonoyesfunction scopeyesyesyesblock scopeyesyesnocan be reassignednoyesyes

Mari kita pahami perbedaannya dengan contoh

var symbol1 = Symbol('symbol');
_8
  • Variabel yang dideklarasikan dengan kata kunci let dalam lingkup global berperilaku seperti variabel yang dideklarasikan dengan kata kunci var dalam lingkup global
  • Variabel dideklarasikan dalam lingkup global dengan kata kunci var dan let dapat diakses dari mana saja di dalam kode
  • Tapi, ada satu perbedaan. Variabel yang dideklarasikan dengan kata kunci var dalam lingkup global ditambahkan ke jendela/objek global. Oleh karena itu, mereka dapat diakses menggunakan jendela. namavariabel
    Sedangkan variabel yang dideklarasikan dengan kata kunci let tidak ditambahkan ke objek global, oleh karena itu, mencoba mengakses variabel tersebut menggunakan jendela. variabelName menghasilkan kesalahan

var vs biarkan dalam lingkup fungsional

var symbol1 = Symbol('symbol');
_9

Variabel dideklarasikan dalam ruang lingkup fungsional/lokal menggunakan var dan biarkan kata kunci berperilaku persis sama, artinya, mereka tidak dapat diakses dari luar ruang lingkup.  

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
0
  • Dalam javascript, blok berarti kode yang ditulis di dalam kurung kurawal {}
  • Variabel yang dideklarasikan dengan kata kunci var tidak memiliki cakupan blok. Artinya variabel yang dideklarasikan dalam lingkup blok {} dengan kata kunci var sama dengan mendeklarasikan variabel dalam lingkup global
  • Variabel yang dideklarasikan dengan kata kunci let di dalam ruang lingkup blok tidak dapat diakses dari luar blok

Kata kunci konstanta

  • Variabel dengan kata kunci const berperilaku persis seperti variabel yang dideklarasikan dengan kata kunci let hanya dengan satu perbedaan, variabel apa pun yang dideklarasikan dengan kata kunci const tidak dapat dipindahkan
  • Example
typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
1

Pada kode di atas, meskipun kita dapat mengubah nilai properti di dalam variabel yang dideklarasikan dengan kata kunci const, kita tidak dapat sepenuhnya menugaskan ulang variabel itu sendiri

35. Apa parameter sisanya dan operator spread?

Baik parameter istirahat dan operator spread diperkenalkan dalam javascript versi ES6

Parameter istirahat (…)

  • Ini memberikan cara yang lebih baik dalam menangani parameter suatu fungsi
  • Menggunakan sintaks parameter rest, kita dapat membuat fungsi yang dapat mengambil sejumlah variabel argumen
  • Sejumlah argumen akan diubah menjadi array menggunakan parameter rest
  • Ini juga membantu dalam mengekstraksi semua atau sebagian argumen
  • Parameter istirahat dapat digunakan dengan menerapkan tiga titik (. ) sebelum parameter
typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
2

**Catatan- Parameter istirahat harus selalu digunakan pada parameter terakhir dari suatu fungsi

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
3
  • Sebarkan operator (…). Meskipun sintaks operator spread sama persis dengan parameter lainnya, operator spread digunakan untuk menyebarkan array, dan literal objek. Kami juga menggunakan operator sebar di mana satu atau lebih argumen diharapkan dalam pemanggilan fungsi
typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
4

*** Catatan- Perbedaan utama antara parameter istirahat dan operator spread

  • Parameter rest digunakan untuk mengambil sejumlah variabel argumen dan mengubahnya menjadi array sementara operator spread mengambil array atau objek dan menyebarkannya
  • Parameter istirahat digunakan dalam deklarasi fungsi sedangkan operator spread digunakan dalam pemanggilan fungsi

36. Dalam JavaScript, berapa banyak metode berbeda yang dapat Anda buat untuk membuat objek?

Dalam JavaScript, ada beberapa cara untuk mendeklarasikan atau membangun sebuah objek

  1. Obyek
  2. menggunakan Kelas
  3. buat Metode
  4. Objek Literal
  5. menggunakan Fungsi
  6. Pembuat Objek

37. Apa gunanya janji dalam javascript?

Janji digunakan untuk menangani operasi asinkron dalam javascript

Sebelum janji, panggilan balik digunakan untuk menangani operasi asinkron. Namun karena fungsi callback yang terbatas, menggunakan beberapa callback untuk menangani kode asinkron dapat menyebabkan kode yang tidak dapat dikelola

Objek janji memiliki empat status -

  • Tertunda - Status awal janji. Status ini menyatakan bahwa janji tersebut belum dipenuhi atau ditolak, itu dalam status tertunda
  • Terpenuhi - Status ini menunjukkan bahwa janji telah terpenuhi, artinya operasi async telah selesai
  • Ditolak - Keadaan ini menyatakan bahwa janji telah ditolak karena beberapa alasan, yang berarti operasi asinkron telah gagal
  • Ditetapkan - Keadaan ini menyatakan bahwa janji telah ditolak atau dipenuhi

Promise dibuat menggunakan konstruktor Promise yang mengambil fungsi panggilan balik dengan dua parameter, masing-masing menyelesaikan dan menolak

Potongan kode javascript untuk wawancara

resolve adalah fungsi yang akan dipanggil ketika operasi async telah berhasil diselesaikan

reject adalah fungsi yang akan dipanggil, ketika operasi async gagal atau jika terjadi kesalahan

Contoh janji

Janji digunakan untuk menangani operasi asinkron seperti permintaan server, untuk memudahkan pemahaman, kami menggunakan operasi untuk menghitung jumlah dari tiga elemen

Dalam fungsi di bawah ini, kami mengembalikan janji di dalam suatu fungsi

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
5

Dalam kode di atas, kami menghitung jumlah dari tiga elemen, jika panjang array elemen lebih dari 3, janji ditolak, atau janji diselesaikan dan jumlahnya dikembalikan

Kita dapat menggunakan janji apa pun dengan melampirkan metode then() dan catch() ke konsumen

Potongan kode javascript untuk wawancara

metode then() digunakan untuk mengakses hasil ketika janji dipenuhi

metode catch() digunakan untuk mengakses hasil/kesalahan saat janji ditolak. Dalam kode di bawah ini, kami menggunakan janji

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
6

38. Apa itu kelas dalam javascript?

Diperkenalkan dalam versi ES6, kelas hanyalah gula sintaksis untuk fungsi konstruktor. Mereka menyediakan cara baru untuk mendeklarasikan fungsi konstruktor dalam javascript. Di bawah ini adalah contoh bagaimana kelas dideklarasikan dan digunakan

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
7

Poin kunci untuk diingat tentang kelas

  • Tidak seperti fungsi, kelas tidak diangkat. Kelas tidak dapat digunakan sebelum dideklarasikan
  • Kelas dapat mewarisi properti dan metode dari kelas lain dengan menggunakan kata kunci perluasan
  • Semua sintaks di dalam kelas harus mengikuti mode ketat ('gunakan ketat') dari javascript. Kesalahan akan terjadi jika aturan mode ketat tidak diikuti

39. Apa itu fungsi genset?

Diperkenalkan pada versi ES6, fungsi generator adalah kelas fungsi khusus

Mereka dapat dihentikan di tengah jalan dan kemudian melanjutkan dari tempat mereka berhenti

Fungsi generator dideklarasikan dengan kata kunci function* bukan kata kunci fungsi normal

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
_8

Dalam fungsi normal, kami menggunakan kata kunci return untuk mengembalikan nilai dan segera setelah pernyataan return dieksekusi, eksekusi fungsi berhenti

typeof "John Doe" // Returns "string"
typeof 3.14 // Returns "number"
typeof true // Returns "boolean"
typeof 234567890123456789012345678901234567890n // Returns bigint
typeof undefined // Returns "undefined"
typeof null // Returns "object" (kind of a bug in JavaScript)
typeof Symbol('symbol') // Returns Symbol
_9

Dalam kasus fungsi generator, saat dipanggil, mereka tidak mengeksekusi kode, sebaliknya, mereka mengembalikan objek generator. Objek generator ini menangani eksekusi

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_0

Objek generator terdiri dari metode yang disebut next(), metode ini ketika dipanggil, mengeksekusi kode hingga pernyataan hasil terdekat, dan mengembalikan nilai hasil

Misalnya, jika kita menjalankan metode next() pada kode di atas

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_1

Seperti yang dapat dilihat, metode selanjutnya mengembalikan objek yang terdiri dari nilai dan properti done. Nilai properti mewakili nilai yang dihasilkan. Selesai properti memberitahu kita apakah kode fungsi selesai atau tidak. (Returns true if finished)

Fungsi generator digunakan untuk mengembalikan iterator. Mari kita lihat contoh di mana iterator dikembalikan

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_2

Seperti yang Anda lihat pada kode di atas, baris terakhir kembali selesai. benar, karena kode mencapai pernyataan pengembalian

40. Jelaskan WeakSet dalam javascript

Dalam javascript, Set adalah kumpulan elemen unik dan teratur. Sama seperti Set, WeakSet juga merupakan kumpulan elemen unik dan terurut dengan beberapa perbedaan utama

  • Weakset hanya berisi objek dan tidak ada tipe lainnya
  • Objek di dalam himpunan lemah direferensikan dengan lemah. Artinya, jika objek di dalam perangkat lemah tidak memiliki referensi, maka akan menjadi sampah yang dikumpulkan
  • Tidak seperti Set, WeakSet hanya memiliki tiga metode, add() , delete() dan has()
// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_3

41. Mengapa kita menggunakan callback?

Fungsi callback adalah metode yang dikirim sebagai input ke fungsi lain (sekarang beri nama fungsi lain ini "thisFunction"), dan ini dilakukan di dalam thisFunction setelah fungsi selesai dijalankan

JavaScript adalah bahasa scripting yang didasarkan pada peristiwa. Alih-alih menunggu balasan sebelum melanjutkan, JavaScript akan terus berjalan sambil memantau peristiwa tambahan. Callback adalah teknik untuk memastikan bahwa kode tertentu tidak berjalan sampai kode lain menyelesaikan eksekusinya

42. Jelaskan WeakMap dalam javascript

Dalam javascript, Map digunakan untuk menyimpan key-value pair. Pasangan kunci-nilai dapat berupa tipe primitif dan non-primitif. WeakMap mirip dengan Peta dengan perbedaan utama

  • Kunci dan nilai di weakmap harus selalu berupa objek
  • Jika tidak ada referensi ke objek, objek tersebut akan menjadi sampah yang dikumpulkan
// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_4

43. Apa itu Penghancuran Objek?

Penghancuran objek adalah cara baru untuk mengekstraksi elemen dari objek atau larik

  • Penghancuran objek. Sebelum versi ES6
// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_5

Contoh yang sama menggunakan penghancuran objek

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_6

Seperti yang bisa dilihat, menggunakan penghancuran objek, kami telah mengekstraksi semua elemen di dalam objek dalam satu baris kode. Jika kita ingin variabel baru kita memiliki nama yang sama dengan properti objek, kita dapat menghapus titik dua

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_7
  • Penghancuran susunan. Sebelum versi ES6
// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_8

Contoh yang sama menggunakan penghancuran objek

// Collection of data in key-value pairs

var obj1 = {
   x:  43,
   y:  "Hello world!",
   z: function(){
      return this.x;
   }
}
      
// Collection of data as an ordered list
     
var array1 = [5, "Hello", true, 4.1]; 
_9

44. Perbedaan antara prototipe dan pewarisan klasik

Pemrogram membuat objek, yang merupakan representasi dari entitas real-time, dalam pemrograman OO tradisional. Kelas dan objek adalah dua jenis abstraksi. Kelas adalah generalisasi dari suatu objek, sedangkan objek adalah abstraksi dari hal yang sebenarnya. Kendaraan, misalnya, adalah spesialisasi dari Mobil. Akibatnya, mobil (kelas) diturunkan dari kendaraan (objek)

Pewarisan klasik berbeda dari pewarisan prototypal karena pewarisan klasik terbatas pada kelas yang mewarisi dari kelas yang tersisa, tetapi pewarisan prototypal memungkinkan objek apa pun untuk dikloning melalui metode penautan objek. Meskipun membahas terlalu banyak hal spesifik, sebuah prototipe pada dasarnya berfungsi sebagai template untuk objek lain tersebut, apakah mereka memperluas objek induk atau tidak.

45. Apa itu Zona Mati Temporal?

Zona Mati Temporal adalah perilaku yang terjadi dengan variabel yang dideklarasikan menggunakan kata kunci let dan const. Ini adalah perilaku di mana kami mencoba mengakses variabel sebelum diinisialisasi. Contoh zona mati temporal

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
_0

Pada kode di atas, baik dalam lingkup global maupun lingkup fungsional, kita mencoba mengakses variabel yang belum dideklarasikan. Ini disebut Zona Mati Duniawi

46. Apa yang Anda maksud dengan Pola Desain JavaScript?

Pola desain JavaScript adalah pendekatan berulang untuk kesalahan yang terkadang muncul saat membangun aplikasi browser JavaScript. Mereka benar-benar membantu kami membuat kode kami lebih stabil

Mereka dibagi terutama menjadi 3 kategori

  1. Pola Desain Penciptaan
  2. Pola Desain Struktural
  3. Pola Desain Perilaku
  • Pola Desain Penciptaan. Mekanisme pembuatan objek ditangani oleh JavaScript Creational Design Pattern. Mereka bertujuan untuk membuat item yang sesuai untuk skenario tertentu
  • Pola Desain Struktural. Pola Desain Struktural JavaScript menjelaskan bagaimana kelas dan objek yang telah kita hasilkan sejauh ini dapat digabungkan untuk membuat kerangka kerja yang lebih besar. Pola ini memudahkan untuk membuat hubungan antar item dengan menentukan cara langsung untuk melakukannya
  • Pola Desain Perilaku. Pola desain ini menyoroti pola khas komunikasi antar objek dalam JavaScript. Akibatnya, komunikasi dapat dilakukan dengan kebebasan yang lebih besar

47. Apakah JavaScript merupakan bahasa pass-by-reference atau pass-by-value?

The variable's data is always a reference for objects, hence it's always pass by value. Akibatnya, jika Anda menyediakan objek dan mengubah anggotanya di dalam metode, perubahan akan berlanjut di luarnya. Tampaknya lewat referensi dalam kasus ini. Namun, jika Anda memodifikasi nilai dari variabel objek, perubahan tersebut tidak akan bertahan lama, menunjukkan bahwa itu memang diteruskan oleh nilai

48. Perbedaan antara penggunaan Async/Await dan Generator untuk mencapai fungsi yang sama

  • Generator functions are run by their generator yield by yield which means one output at a time, whereas Async-await functions are executed sequentially one after another
  • Async/await provides a certain use case for Generators easier to execute
  • The output result of the Generator function is always value. X, done. Boolean, but the return value of the Async function is always an assurance or throws an error

49. What are the primitive data types in JavaScript?

A primitive is a data type that isn't composed of other data types. It's only capable of displaying one value at a time. By definition, every primitive is a built-in data type (the compiler must be knowledgeable of them) nevertheless, not all built-in datasets are primitives. In JavaScript, there are 5 different forms of basic data. The following values are available

  1. Boolean
  2. Undefined
  3. Null
  4. Number
  5. String

50. What is the role of deferred scripts in JavaScript?

The processing of HTML code while the page loads are disabled by nature till the script hasn't halted. Your page will be affected if your network is a bit slow, or if the script is very hefty. When you use Deferred, the script waits for the HTML parser to finish before executing it. This reduces the time it takes for web pages to load, allowing them to appear more quickly

51. What has to be done in order to put Lexical Scoping into practice?

To support lexical scoping, a JavaScript function object's internal state must include not just the function's code but also a reference to the current scope chain

52. What is the purpose of the following JavaScript code?

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
1

Every executing function, code block, and script as a whole in JavaScript has a related object known as the Lexical Environment. The preceding code line returns the value in scope

JavaScript Coding Interview Questions

53. Guess the outputs of the following codes

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
2

Answers

  • Code 1 - Outputs 2 and 12. Since, even though let variables are not hoisted, due to the async nature of javascript, the complete function code runs before the setTimeout function. Therefore, it has access to both x and y
  • Code 2 - Outputs 3, three times since variable declared with var keyword does not have block scope. Also, inside the for loop, the variable i is incremented first and then checked
  • Code 3 - Output in the following order
hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
3

Even though the second timeout function has a waiting time of zero seconds, the javascript engine always evaluates the setTimeout function using the Web API, and therefore, the complete function executes before the setTimeout function can execute

54. Guess the outputs of the following code

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
4

Answers

Code 1 - Output will be {name. “Akki”}

Adding objects as properties of another object should be done carefully

Writing x[y] = {name. ”Vivek”} , is same as writing x[‘object Object’] = {name. ”Vivek”} ,

While setting a property of an object, javascript coerces the parameter into a string

Therefore, since y is an object, it will be converted to ‘object Object’

Both x[y] and x[z] are referencing the same property

Code 2 - Outputs in the following order

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
5

Code 3 - Output in the following order due to equality coercion

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
6

55. Guess the output of the following code

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
7

Answer

Output is NaN

random() function has functional scope since x is declared and hoisted in the functional scope

Rewriting the random function will give a better idea about the output

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
8

56. Guess the outputs of the following code

hoistedVariable = 3;
console.log(hoistedVariable); // outputs 3 even when the variable is declared after it is initialized	
var hoistedVariable;
9

Answers

Code 1 - Output in the following order

var x = 3; //without decimal
var y = 3.6; //with decimal
00

Reason - The first output is undefined since when the function is invoked, it is invoked referencing the global object

var x = 3; //without decimal
var y = 3.6; //with decimal
01


Code 2 - Outputs in the following order

var x = 3; //without decimal
var y = 3.6; //with decimal
02


Since we are using the arrow function inside func2, this keyword refers to the global object

Code 3 - Outputs in the following order

var x = 3; //without decimal
var y = 3.6; //with decimal
03

Only in the IIFE inside the function f, this keyword refers to the global/window object
 

57. Guess the outputs of the following code

**Note - Code 2 and Code 3 require you to modify the code, instead of guessing the output

var x = 3; //without decimal
var y = 3.6; //with decimal
04

Answers -

Code 1 - Outputs 45

Even though a is defined in the outer function, due to closure the inner functions have access to it

Code 2 - This code can be modified by using closures,

var x = 3; //without decimal
var y = 3.6; //with decimal
05

Code 3 - Can be modified in two ways

Using let keyword

var x = 3; //without decimal
var y = 3.6; //with decimal
06

Using closure

var x = 3; //without decimal
var y = 3.6; //with decimal
07

58. Write a function that performs binary search on a sorted array

var x = 3; //without decimal
var y = 3.6; //with decimal
08

59. Implement a function that returns an updated array with r right rotations on an array of integers a

Example

Given the following array. [2,3,4,5,7]
Perform 3 right rotations
First rotation . [7,2,3,4,5] , Second rotation . [5,7,2,3,4] and, Third rotation. [4,5,7,2,3]

return [4,5,7,2,3]

Answer

var x = 3; //without decimal
var y = 3.6; //with decimal
09

60. Write the code for dynamically inserting new components

var x = 3; //without decimal
var y = 3.6; //with decimal
10

61. Write the code given If two strings are anagrams of one another, then return true

var x = 3; //without decimal
var y = 3.6; //with decimal
11

62. Write the code to find the vowels

var x = 3; //without decimal
var y = 3.6; //with decimal
12

63. In JavaScript, how do you turn an Object into an Array []?

var x = 3; //without decimal
var y = 3.6; //with decimal
13

64. What is the output of the following code?

var x = 3; //without decimal
var y = 3.6; //with decimal
14

Ans.  

var x = 3; //without decimal
var y = 3.6; //with decimal
15

Conclusion

It is preferable to keep the JavaScript, CSS, and HTML in distinct Separate 'javascript' files. Dividing the code and HTML sections will make them easier to understand and deal with. This strategy is also simpler for several programmers to use at the same time. JavaScript code is simple to update. Numerous pages can utilize the same group of JavaScript Codes. If we utilize External JavaScript scripts and need to alter the code, we must do it just once. So that we may utilize a number and maintain it much more easily. Remember that professional experience and expertise are only one aspect of recruitment. Previous experience and personal skills are both vital in landing (or finding the ideal applicant for the job

Remember that many JavaScript structured interviews are free and have no one proper answer. Pewawancara ingin tahu mengapa Anda menjawab seperti itu, bukan jika Anda mengingat jawabannya. Explain your answer process and be prepared to address it

Is it OK to use JavaScript for coding interview?

The answer is yes. Most companies let you code in any language you want - the only exception I know being Google, where they only allow candidates to pick from Java, C++, JavaScript or Python for their algorithmic coding interviews.

How to prepare for JavaScript coding interview?

How to prepare for JavaScript interviews .
Step 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. .
Step 2. Make a plan. .
Step 3. Don't forget the behavioral interview

Can I crack Google interview with JavaScript?

Can I use JavaScript for interviews? Yes, as long as that's the language you know best, you can usually use it . Note, however, that if interviewers want to check your skill in a particular language, that changes. Jika solusinya jauh lebih baik dalam bahasa OOP yang berbeda, Anda harus memiliki alasan yang kuat untuk tidak memilihnya.

Apa itu cuplikan kode dalam JavaScript?

Cuplikan kode adalah template yang memudahkan untuk memasukkan pola kode berulang, seperti pengulangan atau pernyataan bersyarat . In Visual Studio Code, snippets appear in IntelliSense (Ctrl+Space) mixed with other suggestions, as well as in a dedicated snippet picker (Insert Snippet in the Command Palette).