Cara menggunakan javascript untuk coding wawancara

JavaScript sudah berjalan di browser Anda di komputer, di tablet, dan di ponsel cerdas Anda

Show

JavaScript bebas digunakan untuk semua orang


Pembelajaran saya

Lacak kemajuan Anda dengan program "Pembelajaran Saya" gratis di W3Schools

Masuk ke akun Anda, dan mulai dapatkan poin

Ini adalah fitur opsional. Anda dapat mempelajari W3Schools tanpa menggunakan My Learning

Cara menggunakan javascript untuk coding wawancara


Referensi JavaScript

W3Schools mengelola referensi JavaScript lengkap, termasuk semua objek HTML dan browser

Referensi berisi contoh untuk semua properti, metode, dan peristiwa, dan terus diperbarui sesuai dengan standar web terbaru

Saya telah dengan hati-hati memeriksa lebih dari 50 sumber daya, saya telah melalui 10 wawancara JavaScript, dan saya telah mendapatkan pekerjaan di startup unicorn

Dan selama seluruh proses ini, saya mulai melihat pola dalam pertanyaan wawancara JS yang paling sering diajukan

Pada artikel ini, saya telah mencoba membuat daftar konsep yang akan mencakup 80% dari setiap wawancara JS yang bagus

Jadi, jika Anda sedang mempersiapkan wawancara JS berikutnya, ini adalah lembar contekan yang sempurna bagi Anda untuk meninjau dan memperkuat keterampilan Anda. Lakukan ini dan Anda akan siap untuk bergoyang. 💃

📝Prasyarat

  • Pengetahuan dasar tentang web dan pemrograman
  • Familiar dengan HTML/CSS dan JavaScript (terutama sintaks ES6+)

Daftar Isi 📜

  • – Variabel JS dan Metode Array
  • – Cakupan, Penutupan, dan Pengangkatan
  • – Prototipe dan "ini"
  • – Event Loops, Timer, dan Janji
  • - Async/defer, Polyfill, Debouncing, dan Throttling

Peringatan. Fokus di sini sebagian besar adalah mencakup konsep-konsep yang relevan dengan wawancara dan bukan membuat buklet komprehensif untuk mempelajari bahasa. Perlakukan ini lebih seperti lembar contekan

Jika Anda ingin mempelajari lebih dalam dan mempelajari lebih lanjut konsep JS, lihat kurikulum freeCodeCamp

Dengan itu menyingkir - ayo pergi

Dasar-Dasar JavaScript 👶

Mari kita mulai dengan beberapa konsep dasar yang perlu diketahui oleh setiap pengembang JS

Variabel dalam JavaScript 📥

Variabel adalah blok bangunan dari setiap bahasa pemrograman. Anda menggunakannya untuk menyimpan nilai. Variabel dapat berupa angka, string, dan banyak jenis lainnya

Sekarang, JS adalah bahasa yang diketik secara longgar. Anda tidak perlu menyatakan jenis variabel. Anda bisa mendeklarasikannya, dan JS akan mengetahuinya sendiri

Sekarang, dalam JavaScript kita memiliki 3 cara untuk mendeklarasikan variabel.

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
9,
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
0, dan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
1

Inilah perbedaan utamanya

Cara menggunakan javascript untuk coding wawancara

Mari kita coba memahaminya melalui contoh

Kami akan membahas ruang lingkup nanti. Untuk saat ini, mari kita fokus pada perbedaan lainnya

var a = 3
var a = 4

console.log(a) // 4 as var variables can be redeclared + updated

let b = 3
let b = 4

console.log(b) // Syntax Error as let variables cannot be redeclared

// If we just do, it will work because it can be updated
b = 4 

const c = 3
const c = 4

console.log(c) // Syntax Error as const variables cannot be redeclared or updated

const d

// Will this throw an error? Go through the table and try to find the answer.

Catatan. Dalam JavaScript, menempatkan titik koma setelah akhir pernyataan adalah opsional. Saya akan melewatkannya di sini demi keterbacaan

== vs === dalam JavaScript

Mari kita bandingkan beberapa variabel. Ada dua cara untuk melakukannya

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_2 hanya memeriksa nilainya

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_3 memeriksa nilai + tipe


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_

Array dalam JavaScript

Sekarang setelah kita mengetahui sedikit tentang variabel, mari beralih ke array dan metode array

Jika kita telah mendeklarasikan banyak variabel, masuk akal untuk menyimpannya di suatu tempat. Kalau tidak, akan sulit untuk melacak semuanya. Array adalah salah satu cara menyimpan variabel


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']

Tapi hanya menyimpan variabel dalam array agak membosankan. Kita dapat melakukan lebih banyak hal dengan array ini (seperti mengakses variabel-variabel ini atau mengubah urutan penyimpanannya atau cara penyimpanannya)

Untuk itu, JS memiliki banyak metode. Mari kita lihat beberapa di antaranya sekarang

Metode Larik JavaScript 🧰

Metode array yang paling sering digunakan di JS adalah.

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4,
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
5,
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
6,
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
7, dan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
8

Mari kita bahas

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4,
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
5, dan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
8. Anda dapat menjelajahi lebih lanjut di artikel bermanfaat ini

Metode larik // Return the words with more than 6 letters const words = ['react', 'script', 'interview', 'style', 'javascript'] const ans = words.filter((word) => word.length > 6) console.log(ans) // ['interview', 'javascript'] 4

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_4 membuat salinan baru dari array asli. Kami menggunakannya ketika kami ingin melakukan sesuatu dengan elemen-elemen dari array asli tetapi tidak ingin mengubahnya

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4 mengulangi array asli dan mengambil fungsi callback (yang akan kita bahas nanti) sebagai argumen. Dalam fungsi panggilan balik, kami memberi tahu apa yang harus dilakukan dengan elemen

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]

Metode larik // Return the words with more than 6 letters const words = ['react', 'script', 'interview', 'style', 'javascript'] const ans = words.filter((word) => word.length > 6) console.log(ans) // ['interview', 'javascript'] 5

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_5 membuat array baru dengan elemen yang memenuhi kondisi yang diberikan

Mari kita lihat sebuah contoh. Saya telah menggunakan fungsi panah di sini. Jika Anda sedikit tidak nyaman dengan fungsi, Anda dapat membahas bagian berikutnya terlebih dahulu dan kembali lagi

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_

Cobalah untuk melakukan latihan sendiri terlebih dahulu untuk menguji pengetahuan Anda. Jika Anda menemukan solusi yang berbeda atau lebih baik, beri tahu saya

Secara umum, tindak lanjut untuk ini. dapatkah Anda melakukannya tanpa metode array?

let newArr = []

for (let i = 0; i < words.length; i++) {
  if (words[i].length > 6) {
    newArr.push(words[i])
  }
}
console.log(newArr)

Metode larik // Return the words with more than 6 letters const words = ['react', 'script', 'interview', 'style', 'javascript'] const ans = words.filter((word) => word.length > 6) console.log(ans) // ['interview', 'javascript'] 8

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_8 sangat mirip dengan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4 tetapi memiliki dua perbedaan utama

Pertama-tama,

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_4 mengembalikan Array baru, tetapi
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
8 tidak

// Return a new array where even numbers are multiplied by 2 
let arr = [1, 2, 3, 4, 5, 6, 7]

function consoleEven(arr) {
  let data = arr.map((num) => (num % 2 === 0 ? num * 2 : num * 1))
  
  console.log(data)  // [1,  4, 3, 8, 5, 12, 7]
}


// ? is the ternary operator. If the condition is true - first statement is returned otherwise the second one.


consoleEven(arr) 


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)

Dan kedua, Anda dapat melakukan metode chaining di

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4 tetapi tidak di
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
8


// Convert  the new array back to original

function consoleEven(arr) {
  let data = arr
    .map((num) => (num % 2 === 0 ? num * 2 : num * 1))
    .map((item) => (item % 2 === 0 ? item / 2 : item / 1))
    
  console.log(data)
}

consoleEven(arr)

Catatan.

// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
4 dan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
8 tidak bermutasi (mengubah) array asli

Pemrograman Fungsional dalam JavaScript 🛠

Kami telah menggunakan fungsi di atas. Mari kita bahas lebih detail sekarang

Sama seperti bagaimana kita menggunakan variabel untuk menyimpan nilai, kita dapat menggunakan fungsi untuk menyimpan potongan kode yang dapat kita gunakan kembali

Anda dapat membuat fungsi dengan dua cara

function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))

Sekarang, mari kita membahas beberapa konsep penting yang berkaitan dengan fungsi

Cakupan Fungsi dalam JavaScript 🕵️

Lingkup menentukan dari mana variabel dapat diakses

Ada tiga jenis ruang lingkup

  • Global (deklarasi di luar fungsi apa pun)
  • Fungsi (deklarasi di dalam fungsi)
  • Blok (deklarasi di dalam blok)

Ingat dari sebelumnya bahwa

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_9 adalah cakupan global sedangkan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
0 dan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
1 adalah cakupan blok. Mari kita pahami itu sekarang


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_0

Penutupan dalam JavaScript (❗penting) 🔒

Kami telah menggunakan penutupan tanpa menyadarinya. Pada contoh di bawah ini,

// Return a new array where even numbers are multiplied by 2 
let arr = [1, 2, 3, 4, 5, 6, 7]

function consoleEven(arr) {
  let data = arr.map((num) => (num % 2 === 0 ? num * 2 : num * 1))
  
  console.log(data)  // [1,  4, 3, 8, 5, 12, 7]
}


// ? is the ternary operator. If the condition is true - first statement is returned otherwise the second one.


consoleEven(arr) 

9 adalah variabel tertutup


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_1

Bagian ini akan memiliki banyak kata-kata mewah, jadi bersabarlah. Kami akan membahasnya satu per satu

kata MDN

Sebuah fungsi yang dibundel bersama dengan lingkungan leksikalnya membentuk sebuah penutup

Oke, apa itu lingkungan leksikal?

Ini pada dasarnya adalah keadaan sekitar – memori lokal bersama dengan lingkungan leksikal induknya

Apa? . Mari kita pahami dengan contoh sederhana


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_2

Ketika x dipanggil, y dikembalikan. Sekarang, y sedang menunggu untuk dieksekusi. Seperti senjata yang dimuat menunggu untuk ditembakkan. 🔫

Jadi, ketika kita akhirnya memanggil z, y dipanggil. Sekarang, Anda harus mencatat


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
0 jadi pertama kali mencoba menemukan 🔍 di memori lokal tetapi tidak ada. Ia pergi ke fungsi induknya. Ia menemukan

function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_0 di sana

Voila. Itu dia - ini adalah penutupan

Bahkan ketika fungsi dikembalikan (dalam kasus di atas y) mereka masih mengingat ruang lingkup leksikalnya (dari mana asalnya)

Kutipan yang sama sekali tidak terkait untuk iseng 👻

Mereka mungkin lupa apa yang Anda katakan - tetapi mereka tidak akan pernah lupa bagaimana Anda membuat mereka merasa - Carl W. Buehner

Saya bersumpah artikel lainnya sah 🤞 Teruslah membaca

Keuntungan Penutupan di JavaScript 😎

  • Kari

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_3
  • Penyembunyian/Enkapsulasi Data

Misalkan Anda ingin membuat aplikasi counter. Setiap kali Anda memanggilnya, hitungannya bertambah 1. Tetapi Anda tidak ingin mengekspos variabel di luar fungsi. Bagaimana cara melakukannya?

Anda dapat menebaknya - penutupan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_4

Jangan khawatir tentang


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 dan

function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
3. Kami memiliki seluruh bagian yang dikhususkan untuk mereka di bawah

Kerugian Penutupan di JavaScript 😅

  • Konsumsi memori yang berlebihan atau kebocoran memori dapat terjadi

Misalnya, variabel tertutup tidak akan dikumpulkan dari sampah. Ini karena, meskipun fungsi luar telah berjalan, fungsi dalam yang dikembalikan masih memiliki referensi ke variabel tertutup

Catatan. Pengumpulan sampah pada dasarnya menghapus variabel yang tidak terpakai dari memori secara otomatis

Mengangkat dalam JavaScript 🚩

Ini adalah perilaku default JavaScript untuk memindahkan deklarasi ke bagian atas program

  • const a = [1,2,3,4,5]
    
    // Create a new array which multiplies every element by 2
    
    const d = a.map(function(item){ return item*2 })
    
    console.log(d) // [2,4,6,8,10]
    
    _9 deklarasi diangkat dan diinisialisasi dengan
    
    function consoleEven(arr) {
      let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
      console.log(data) // undefined
    }
    
    consoleEven(arr)
    
    5
  • Deklarasi
    // Return the words with more than 6 letters
    const words = ['react', 'script', 'interview', 'style', 'javascript']
    
    const ans = words.filter((word) => word.length > 6)
    
    console.log(ans) // ['interview', 'javascript']
    
    0 dan
    // Return the words with more than 6 letters
    const words = ['react', 'script', 'interview', 'style', 'javascript']
    
    const ans = words.filter((word) => word.length > 6)
    
    console.log(ans) // ['interview', 'javascript']
    
    1 diangkat tetapi tidak diinisialisasi
  • 
    function consoleEven(arr) {
      let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
      console.log(data) // undefined
    }
    
    consoleEven(arr)
    
    8 definisi juga diangkat dan disimpan apa adanya

Mari kita lihat sebuah contoh


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_5

Fiuh. Saya sudah selesai dengan fungsi di sini, tetapi jika Anda ingin lebih banyak, lihat pembicaraan luar biasa ini oleh Anjana Vakil tentang pemrograman fungsional

Objek dalam JavaScript 🔮

Sama seperti array, objek adalah cara menyimpan data. Kami melakukannya dengan bantuan key-value pair


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_6


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
9 adalah

// Convert  the new array back to original

function consoleEven(arr) {
  let data = arr
    .map((num) => (num % 2 === 0 ? num * 2 : num * 1))
    .map((item) => (item % 2 === 0 ? item / 2 : item / 1))
    
  console.log(data)
}

consoleEven(arr)
0 dan

// Convert  the new array back to original

function consoleEven(arr) {
  let data = arr
    .map((num) => (num % 2 === 0 ? num * 2 : num * 1))
    .map((item) => (item % 2 === 0 ? item / 2 : item / 1))
    
  console.log(data)
}

consoleEven(arr)
1 adalah

// Convert  the new array back to original

function consoleEven(arr) {
  let data = arr
    .map((num) => (num % 2 === 0 ? num * 2 : num * 1))
    .map((item) => (item % 2 === 0 ? item / 2 : item / 1))
    
  console.log(data)
}

consoleEven(arr)
2. Kunci umumnya adalah nama properti objek

Kita dapat menyimpan semua jenis data seperti fungsi di dalam objek. Anda dapat menjelajahi lebih lanjut di sini di MDN

Apa itu function consoleEven(arr) { let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1)) console.log(data) // undefined } consoleEven(arr) _2 dalam JavaScript?

Sekarang, bekerja dengan objek berbeda di JS daripada di bahasa pemrograman populer lainnya seperti C++. Dan untuk memahaminya dengan benar, kita perlu memahami kata kunci


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2 dengan baik

Mari kita coba memahaminya langkah demi langkah

Dalam sebuah program, terkadang kita membutuhkan cara untuk menunjukkan sesuatu. Seperti mengatakan fungsi ini di sini milik objek ini.


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2 membantu kita mendapatkan konteks ini

Anda akan mengerti apa yang saya katakan dengan lebih baik ketika kita melihat beberapa contoh

Untuk saat ini, pikirkan


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 sebagai sesuatu yang menyediakan konteks. Dan ingat hal penting ini. nilainya tergantung pada bagaimana dan di mana itu disebut

Saya tahu saya tahu. Banyak


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 😬. Mari kita bahas semua ini perlahan

Mulai program baru dan cukup masuk


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_7

Ini akan menunjuk ke objek jendela

Sekarang, mari kita ambil contoh dengan sebuah objek


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_8

Sekarang,


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 akan menunjuk ke objek. Jadi apa yang terjadi di sini?

Pada contoh pertama, kita tidak memiliki apa-apa lagi dari

function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
0 sehingga defaultnya adalah objek
function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
1. Namun dalam contoh ini, kita memiliki objek
function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
2

Jika kamu melakukan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_9

Kami kembali mendapatkan objek

function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
_1. Jadi, kita dapat melihat bahwa nilai

function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2 bergantung pada bagaimana dan di mana kita melakukan pemanggilan

Apa yang baru saja kita lakukan di atas disebut Implicit Binding. Nilai


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 terikat pada objek

Ada cara lain untuk menggunakan


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2. Pengikatan eksplisit adalah saat Anda memaksa suatu fungsi untuk menggunakan objek tertentu sebagai

function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2

Mari kita pahami mengapa kita membutuhkan pengikatan eksplisit melalui sebuah contoh


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
0

Kami menggunakan


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 dengan benar, tetapi bisakah Anda melihat masalah dengan kode di atas?

Kami mengulangi kode. Dan salah satu prinsip pemrograman yang baik adalah menjaga agar kode Anda tetap KERING. (Jangan Ulangi Sendiri)

Jadi, mari kita singkirkan

function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
_9 dan lakukan saja


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
1


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_00 memaksa

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

01 untuk menggunakan objek kedua sebagai

function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
2

Ada banyak cara lain yang bisa kita lakukan

Cara menggunakan javascript untuk coding wawancara

Cobalah untuk menyelesaikan sendiri masalah yang diberikan


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
2

Terakhir, ingat bahwa saya mengatakan bahwa ada perbedaan antara panah dan fungsi biasa

Kasus


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2 adalah salah satunya

Untuk fungsi panah, nilainya bergantung pada lingkup leksikal – artinya, fungsi luar tempat fungsi panah dideklarasikan

Jadi, jika kita menjadikan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

04 dari atas sebagai fungsi panah, tidak ada yang berhasil

Fungsi panah pada dasarnya mewarisi konteks induk yang dalam kasus di atas adalah

function a(){
 console.log('I am a normal function');
 }
 
const b = () => {
console.log('I am an arrow function')
}

// They are essentially the same but with a few differences which we will cover as we go along this tutorial. 

// We can pass variables as arguments

const c = (name) => {
console.log(`My name is ${name}`)
}

// `` template literal are a new addition to the language. Very useful for string formatting. Values are accessed using ${} inside them.


// We can even pass functions as arguments to a function. Will see more on this when we try to understand closures.

const greet = () =>  {
    const prefix = 'Mr'
    return (name) => {
        console.log(`${prefix} ${name}, welcome!`)
    }
}

console.log(greet()('Jack'))
1

Prototipe dan Warisan Prototipe dalam JavaScript 👪

Setiap kali kita membuat sesuatu (seperti objek atau fungsi) dalam JavaScript, Mesin JS secara otomatis melampirkan benda itu dengan beberapa properti dan metode

Semua ini datang melalui


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_06


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_07 adalah objek tempat JS meletakkan semuanya

Mari kita lihat beberapa contoh. Jalankan konsol Anda


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
3

Semua ini disebut


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_08

Kita bisa melakukan hal yang sama dengan objek dan fungsi juga

Kami akan selalu menemukan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_09 di belakang layar. Itu sebabnya Anda mungkin pernah mendengar bahwa semua yang ada di JS adalah objek. 🤯

Apa itu Warisan Prototypal dalam JavaScript?


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
4

Catatan. Jangan memodifikasi prototipe dengan cara ini. Itu hanya untuk pengertian. Inilah cara yang tepat untuk melakukannya


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
5

Dengan melakukan ini,


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_10 mendapatkan akses ke properti objek. Jadi, sekarang kita bisa melakukannya


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
6

Ini adalah warisan prototipe

JavaScript asinkron ⚡

Jadi, JS adalah bahasa single-threaded. Hal-hal terjadi satu per satu. Hanya setelah satu hal selesai, kita dapat pindah ke hal berikutnya

Tapi ini menimbulkan masalah di dunia nyata, terutama saat kita bekerja dengan browser

Misalnya, saat kita perlu mengambil data dari web - seringkali kita tidak tahu berapa lama waktu yang dibutuhkan untuk mendapatkannya. Dan apakah kita akan bisa mendapatkan data dengan sukses

Untuk membantu hal ini, JS asinkron berperan

Dan konsep yang paling penting untuk dipahami adalah event loop

Loop Acara di JavaScript ➰

Alih-alih memberikan penjelasan setengah matang di sini, saya sangat menyarankan untuk menonton video Philip Roberts ini jika Anda belum melakukannya

Pelajari semua tentang loop acara di JS di sini

Timer dalam JavaScript – setTimeout, setInterval, clearInterval ⏱️

Saya harap Anda menonton videonya. Itu menyebutkan pengatur waktu. Mari kita bicarakan lebih banyak tentang mereka sekarang. Ini sangat sering ditanyakan dalam wawancara

Metode


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

11 memanggil fungsi atau mengevaluasi ekspresi setelah sejumlah milidetik yang ditentukan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_12 melakukan hal yang sama untuk interval tertentu


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
7

Anda menggunakan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_13 untuk menghentikan timer


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
_8

Mari kita membahas beberapa pertanyaan yang menggunakan konsep-konsep ini


let a = 4
const b = 5
var c = 'hello'

const array = [a, b, c]

// or you can just directly do

const arr = [4,5,'hello']
_9

Ini yang sedikit lebih rumit

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
0

Dan inilah penjelasan singkat tentang apa yang terjadi di sana. ketika


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_14 muncul lagi ke dalam gambar, seluruh loop telah berjalan dan nilai

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

15 telah menjadi 6,

Sekarang, katakanlah kita ingin hasilnya menjadi 1 2 3 4 5 – apa yang kita lakukan?

Alih-alih

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_9 ➡️ gunakan
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
0

Mengapa ini akan berhasil?

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_9 memiliki cakupan global tetapi
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
0 memiliki cakupan lokal. Jadi untuk
// Return the words with more than 6 letters
const words = ['react', 'script', 'interview', 'style', 'javascript']

const ans = words.filter((word) => word.length > 6)

console.log(ans) // ['interview', 'javascript']
_0

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

15 baru dibuat untuk setiap iterasi

Janji dalam JavaScript (❗penting) 🤝

Janji adalah inti dari Asynchronous JS

Objek Janji mewakili penyelesaian akhir (atau kegagalan) dari operasi asinkron dan nilai yang dihasilkannya

Janji bisa berada di salah satu dari tiga kondisi ini

  • Tertunda. keadaan awal, tidak terpenuhi atau ditolak
  • Terpenuhi. operasi berhasil diselesaikan
  • Ditolak. operasi gagal
const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_1

Catatan.


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_22 dan

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

23 hanyalah nama konvensional. Sebut saja pizza🍕 jika Anda suka

Alih-alih


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_24, kita juga dapat menggunakan

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

25

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_2

Salah satu keuntungan dari promise adalah sintaksnya jauh lebih bersih. Sebelum kami memiliki janji, kami dapat dengan mudah terjebak di callback hell 🌋

Konsep JavaScript Tingkat Lanjut untuk Diketahui

📚 Polyfill dalam JavaScript

Polyfill adalah sepotong kode (biasanya JavaScript di Web) yang digunakan untuk menyediakan fungsionalitas modern pada browser lama yang tidak mendukungnya secara bawaan. MDN

  • Mari terapkan untuk
    // Return the words with more than 6 letters
    const words = ['react', 'script', 'interview', 'style', 'javascript']
    
    const ans = words.filter((word) => word.length > 6)
    
    console.log(ans) // ['interview', 'javascript']
    
    _4
const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_3

Perhatikan bagaimana kami menggunakan


function consoleEven(arr) {
  let data = arr.forEach((num) => (num % 2 === 0 ? num * 2 : num * 1))
  console.log(data) // undefined
}

consoleEven(arr)
_2. Di sini, pada dasarnya kami telah membuat larik baru dan menambahkan nilai ke dalamnya

Async dan tunda dalam JavaScript ✔️

Konsep ini sering ditanyakan dalam wawancara oleh perusahaan besar seperti Amazon, Walmart, dan Flipkart. 🏢

Untuk memahami


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_28 dan

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

29, kita perlu memiliki gagasan tentang bagaimana browser merender halaman web. Pertama, mereka mengurai HTML dan CSS. Kemudian pohon DOM dibuat. Dari sini, pohon render dibuat. Terakhir, dari pohon render - tata letak dibuat dan lukisan terjadi

Untuk tampilan lebih detail, lihat video ini

Async dan defer adalah atribut


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_30 yang dapat dimuat bersama dengan tag skrip. Mereka berguna untuk memuat skrip eksternal ke halaman web Anda

Mari kita pahami dengan bantuan gambar

Cara menggunakan javascript untuk coding wawancara

Cara menggunakan javascript untuk coding wawancara

Cara menggunakan javascript untuk coding wawancara

Cara menggunakan javascript untuk coding wawancara

Jika ada beberapa skrip yang saling bergantung satu sama lain, gunakan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

29. Skrip tunda dijalankan sesuai urutan yang ditentukan

Jika Anda ingin memuat skrip eksternal yang tidak bergantung pada eksekusi skrip lain, gunakan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

28

Catatan. Atribut async tidak menjamin urutan eksekusi skrip

Debouncing dalam JavaScript ⛹️‍♂️

Debouncing adalah topik favorit pewawancara lainnya

Mari kita pahami dengan membuat bilah pencarian

Demo. https. //codesandbox. io/s/debounce-input-field-o5gml

Buat kolom input sederhana di


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

33 seperti ini

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_4

Sekarang, di


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_34. Jangan lupa untuk menambahkannya ke

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

33 terlebih dahulu

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
5

Pertama, kami telah memilih input dan menambahkan ________6______36 ke dalamnya. Kemudian kami membuat fungsi debounce yang menggunakan fungsi panggilan balik dan penundaan

Sekarang, di dalam fungsi debounce kita membuat timer menggunakan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

14. Sekarang, tugas pengatur waktu ini adalah memastikan bahwa panggilan berikutnya untuk ________6______38 hanya terjadi setelah 300 ms. Demikianlah apa yang dimaksud dengan debouncing

Selain itu, kami menggunakan


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_39 untuk menghapusnya. Tidak ingin terlalu banyak dari mereka yang nongkrong di sana menghabiskan ruang memori

Fiuh. Banyak teori. Mari kita lakukan tantangan yang menyenangkan. Anda pasti sudah melihat hitungan mundur sebelum permainan dimulai (seperti 10, 9, 8,. dengan beberapa penundaan di antaranya). Cobalah untuk menulis sebuah program untuk itu

Inilah cara Anda melakukannya

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_6

Apakah Anda mampu menyelesaikannya?

Pembatasan dalam JavaScript 🛑

Mari kita lihat contoh lagi. Misalkan pada setiap acara pengubahan ukuran jendela kita memanggil fungsi yang mahal. Sekarang, kami ingin fungsi mahal hanya akan dijalankan sekali dalam interval waktu yang diberikan. Demikianlah apa yang dimaksud dengan throttling

Buat


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_33 dan

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

34 dengan kode berikut

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_7

Hampir sama dengan debouncing. Perbedaan utama adalah


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_42 variabel. Hanya, jika benar kita memanggil fungsi callback. Dan diatur ke

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_43 di dalam

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

14. Jadi nilainya adalah

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_43 hanya setelah batas waktu yang diinginkan

Jadi, apa perbedaan antara debounce dan throttling❓

Mari kita ambil contoh bilah pencarian 🔍 dari atas. Saat kami mendebouncing kolom input, kami mengatakan untuk hanya mengambil data saat perbedaan antara dua peristiwa


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

46 setidaknya 300 ms

Dalam kasus pelambatan, kami membuat pemanggilan fungsi hanya setelah jangka waktu tertentu

Misalkan Anda sedang mencari ensiklopedia di bilah pencarian. Panggilan pertama dilakukan pada


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

_47 dan kami memerlukan waktu 300 md untuk mencapai

let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

48. Panggilan berikutnya hanya akan dilakukan. Semua peristiwa di antaranya akan diabaikan

Jadi, untuk meringkas, debouncing adalah ketika perbedaan antara dua peristiwa


let a = 5 // number
let b = '5' // string

console.log(a == b) // true

console.log(a === b) // false

46 adalah 300 ms. Dan throttling adalah saat perbedaan antara dua pemanggilan fungsi adalah 300 ms. Pada dasarnya, fungsi dipanggil setelah selang waktu tertentu

Penyimpanan dalam JavaScript 💾

Akhirnya, topik kecil tapi penting untuk menyelesaikan semuanya

penyimpanan lokal. Data tetap ada bahkan setelah menutup sesi Anda

sessionStorage. Anda kehilangan data saat sesi Anda selesai, seperti saat Anda menutup browser di tab

const a = [1,2,3,4,5]

// Create a new array which multiplies every element by 2

const d = a.map(function(item){ return item*2 })

console.log(d) // [2,4,6,8,10]
_8

Dan kita selesai. 🏁 Saya harap Anda merasa lebih percaya diri tentang wawancara JS Anda berikutnya sekarang. saya berharap yang terbaik untukmu

Jika Anda memiliki pertanyaan / saran / umpan balik, Anda dapat menghubungi saya di Twitter. https. //Indonesia. com/rajatetc

🗃️ Referensi Utama

  • Dokumen MDN
  • Akshay Saini
  • Pecandu Coding
  • Wawancara_Javascript

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN

IKLAN


Cara menggunakan javascript untuk coding wawancara
raja gupta

insinyur perangkat lunak, unacademy • rajatgupta. xyz • twitter. com/rajatetc • pengembangan, desain, psikologi, dan startup


Jika Anda membaca sejauh ini, tweet ke penulis untuk menunjukkan bahwa Anda peduli. Tweet terima kasih

Belajar kode secara gratis. Kurikulum open source freeCodeCamp telah membantu lebih dari 40.000 orang mendapatkan pekerjaan sebagai pengembang. Memulai