Pertanyaan wawancara Javascript bodoh
Saya tidak menentang pertanyaan teknis secara langsung. Saya pikir ini adalah salah satu cara untuk mendapatkan gambaran tentang keterampilan teknologi kandidat. Saya lebih suka diskusi teknis daripada wawancara teknologi yang ketat. Tapi izinkan saya menjelaskan salah satu pertanyaan terburuk Javascript hari ini dan mengapa.
Sebelum saya mulai menjelaskan maksud saya, mari gali sedikit sejarah Javascript
Saat itu tahun 1995 , dikembangkan oleh Netscape (Brendan Eich), kemudian Mozilla melanjutkan dengan meningkatkan dan mengembangkan javascript. Ide di balik javascript adalah untuk menciptakan semacam dinamika saat menjelajah dunia online. Itu digunakan untuk beberapa peringatan atau animasi yang sangat mendasar. Javascript dirancang untuk memiliki tampilan dan nuansa Java, tetapi agar lebih mudah digunakan oleh non-programmer. Saat itu bahkan tidak ada AJAX -> Javascript tidak digunakan untuk permintaan dan semacamnya.
Sekitar tahun 1997 Javascript menjadi bagian dari standar ECMA.
Pada tahun 2005 kami memiliki rilis resmi pertama AJAX -> ini adalah titik di mana pengembangan web hari ini dimulai. Tidak perlu lagi me-refresh halaman untuk dapat memuat ulang data. Bayangkan tiba-tiba Anda bisa membuat semacam aplikasi web. Tapi pertanyaannya adalah: Apakah Javascript siap untuk itu? Yah, tidak juga. Pengembang dengan cepat terbiasa menggunakan hal-hal seperti IIFEE :
(function() {
// Code that runs in your function
var name = 'John Doe'
}
)()
console.log(name) // error as the name is not defined in this scope
IIFEE pada dasarnya dari sudut pandang hari ini adalah solusi peretasan untuk dapat membuat aplikasi yang kompleks dengan lebih banyak file .js . Kami membutuhkan solusi semacam ini karena jika tidak, kami akan mengalami konflik dalam penamaan variabel , fungsi , dll, karena Javascript adalah bahasa yang sangat fungsional tanpa kelas.
VAR dan Hoisting -> Hoisting adalah perilaku memindahkan deklarasi ke atas. Dan dalam javascript, variabel dapat digunakan sebelum dideklarasikan. Ini adalah skenario yang valid:
myVariable = ‘is this shit possible?’
var myVariable;
console.log(myVariable); // is this shit possible?
Dalam contoh ini variabel myVariable dipindahkan ke atas dan diinisialisasi pada saat yang sama, inilah alasannya, mengapa pada baris 3, variabel tersebut sudah menyimpan string.
Dan ada lebih banyak hal dan masalah seperti itu. Jangan lupa tentang bagian-bagian aneh dari javascript, yang dapat Anda temukan di sini:https://hackernoon.com/the-weird-parts-of-javascript-zxo34i8
Tapi ada yang berubah dengan Javascript dari versi es6
Jika kita kembali ke contoh mengangkat kita dengan pendekatan baru:
myVariable = ‘is this shit possible?’
let myVariable;
console.log(myVariable); // undefined
Javascript masih menempatkan deklarasi variabel di atas, tetapi bukan inisialisasi. Jadi konsol kami akan menulis variabel yang tidak terdefinisi , bukan string.
Selain versi es6 kami memiliki:
- Fungsi Panah
- Kelas
- Modul
- Janji
- Generator
- deklarasi let dan cons untuk variabel
- Menyebarkan dan Istirahat operator
- Templat Literal
- Merusak
- Dan banyak lagi
Apa pertanyaan wawancara yang salah?
Penting untuk menunjukkan setidaknya beberapa dari contoh tersebut sebelum saya dapat mulai menarik poin saya.
Bayangkan Anda adalah pengembang baru dan mulai mempelajari Javascript. Hal ini benar-benar tidak perlu bagi Anda untuk memahami:
- Var
- IIFEE
- Penutupan
- Janji dan penggunaannya (tetapi ada baiknya untuk mengetahuinya)
Tetapi sama sekali tidak perlu memeriksa pengetahuan tentang Javascript versi lama. Javascript lama dibangun untuk tujuan yang berbeda dari yang digunakan saat ini.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































