{"id":811,"date":"2018-10-02T00:45:48","date_gmt":"2018-10-02T00:45:48","guid":{"rendered":"https:\/\/blog.hassler.ec\/wp\/?p=811"},"modified":"2018-09-26T01:03:32","modified_gmt":"2018-09-26T01:03:32","slug":"10-javascript-concepts-you-need-to-know-for-interviews","status":"publish","type":"post","link":"https:\/\/blog.hassler.ec\/wp\/2018\/10\/02\/10-javascript-concepts-you-need-to-know-for-interviews\/","title":{"rendered":"10 JavaScript concepts you need to know for interviews"},"content":{"rendered":"<figure id=\"c1aa\" class=\"graf graf--figure graf-after--h3\">\n<div class=\"aspectRatioPlaceholder is-locked\">\n<div class=\"progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded\" data-image-id=\"1*eVTsHqSKt4Y881T2mlftFQ.jpeg\" data-width=\"1910\" data-height=\"1276\" data-action=\"zoom\" data-action-value=\"1*eVTsHqSKt4Y881T2mlftFQ.jpeg\" data-scroll=\"native\"><img decoding=\"async\" class=\"progressiveMedia-image js-progressiveMedia-image\" src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*eVTsHqSKt4Y881T2mlftFQ.jpeg\" data-src=\"https:\/\/cdn-images-1.medium.com\/max\/800\/1*eVTsHqSKt4Y881T2mlftFQ.jpeg\" \/><\/div>\n<\/div>\n<\/figure>\n<h3 id=\"f0c0\" class=\"graf graf--h3 graf-after--figure\">Self-Learning<\/h3>\n<p id=\"72be\" class=\"graf graf--p graf-after--h3\">There are thousands of self-taught JavaScript programmers looking for web development positions. Unfortunately, self-learning often leaves gaps in people\u2019s understanding of the language itself.<\/p>\n<p id=\"a2e3\" class=\"graf graf--p graf-after--p\">It\u2019s surprising how little JavaScript one needs to make complex web pages. Often, people who can create entire sites lack knowledge of the language\u2019s fundamentals.<\/p>\n<p id=\"1615\" class=\"graf graf--p graf-after--p\">It\u2019s rather easy to avoid the complex topics and implement features using basic skills. It\u2019s also easy to create a website by relying on Stack Overflow, without understanding the code being copied.<\/p>\n<blockquote id=\"0721\" class=\"graf graf--blockquote graf-after--p\"><p><strong class=\"markup--strong markup--blockquote-strong\">If you\u2019re looking to improve your JavaScript interview skills, check out<\/strong><a class=\"markup--anchor markup--blockquote-anchor\" href=\"https:\/\/www.udemy.com\/master-the-javascript-interview\/?couponCode=999999\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.udemy.com\/master-the-javascript-interview\/?couponCode=999999\"><strong class=\"markup--strong markup--blockquote-strong\">Master the JavaScript Interview<\/strong><\/a><\/p><\/blockquote>\n<h3 id=\"cbf0\" class=\"graf graf--h3 graf-after--blockquote\">Interviews<\/h3>\n<p id=\"4a86\" class=\"graf graf--p graf-after--h3\">The problem is that questions testing your understanding of JS are exactly what many tech companies ask in their interviews. It\u2019s clear when an applicant knows enough to scrape by, but lacks a solid grasp of the language.<\/p>\n<p id=\"1539\" class=\"graf graf--p graf-after--p\">Here are concepts that are frequently asked about in web development interviews. This is assuming you already know the basics such as loops, functions, and callbacks.<\/p>\n<h3 id=\"333e\" class=\"graf graf--h3 graf-after--p\">Concepts<\/h3>\n<ol class=\"postList\">\n<li id=\"362d\" class=\"graf graf--li graf-after--h3\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.educative.io\/collection\/page\/5679346740101120\/5707702298738688\/5685265389584384\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.educative.io\/collection\/page\/5679346740101120\/5707702298738688\/5685265389584384\/\">Value vs. Reference<\/a>\u200a\u2014\u200aUnderstand how objects, arrays, and functions are copied and passed into functions. Know that the reference is what\u2019s being copied. Understand that primitives are copied and passed by copying the value.<\/li>\n<li id=\"f1b0\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/scotch.io\/tutorials\/understanding-scope-in-javascript#toc-scope-in-javascript\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/scotch.io\/tutorials\/understanding-scope-in-javascript#toc-scope-in-javascript\">Scope<\/a>\u200a\u2014\u200aUnderstand the difference between global scope, function scope, and block scope. Understand which variables are available where. Know how the JavaScript engine performs variable lookup.<\/li>\n<li id=\"a1ea\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"http:\/\/javascriptissexy.com\/javascript-variable-scope-and-hoisting-explained\/\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/javascriptissexy.com\/javascript-variable-scope-and-hoisting-explained\/\">Hoisting<\/a>\u200a\u2014\u200aUnderstand that variable and function declarations are hoisted to the top of their available scope. Understand that function expressions are not hoisted.<\/li>\n<li id=\"36a7\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"http:\/\/javascriptissexy.com\/understand-javascript-closures-with-ease\/\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/javascriptissexy.com\/understand-javascript-closures-with-ease\/\">Closures<\/a>\u200a\u2014\u200aKnow that a function retains access to the scope that it was created in. Know what this enables us to do with our code. Understand that closures allow data hiding, memoization, and dynamic function generation.<\/li>\n<li id=\"e2ef\" class=\"graf graf--li graf-after--li\"><code class=\"markup--code markup--li-code\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.educative.io\/collection\/page\/5679346740101120\/5707702298738688\/5676830073815040\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.educative.io\/collection\/page\/5679346740101120\/5707702298738688\/5676830073815040\">this<\/a><\/code>\u200a\u2014\u200aKnow the rules of\u00a0<code class=\"markup--code markup--li-code\">this<\/code>\u00a0binding. Know how it works, know how to figure out what it will be equal to in any piece of code, and know why it\u2019s useful.<\/li>\n<li id=\"abd2\" class=\"graf graf--li graf-after--li\"><code class=\"markup--code markup--li-code\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeburst.io\/javascripts-new-keyword-explained-as-simply-as-possible-fec0d87b2741\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeburst.io\/javascripts-new-keyword-explained-as-simply-as-possible-fec0d87b2741\">new<\/a><\/code>\u200a\u2014\u200aKnow how it relates to object oriented programming. Know what happens to a function called with\u00a0<code class=\"markup--code markup--li-code\">new<\/code>\u00a0and why such a function is known as a constructor. Understand that an object generated by using\u00a0<code class=\"markup--code markup--li-code\">new<\/code><em class=\"markup--em markup--li-em\">inherits<\/em>\u00a0from the function\u2019s prototype property.<\/li>\n<li id=\"debe\" class=\"graf graf--li graf-after--li\"><code class=\"markup--code markup--li-code\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\">apply<\/a><\/code><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\">,\u00a0<\/a><code class=\"markup--code markup--li-code\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\">call<\/a><\/code><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\">,\u00a0<\/a><code class=\"markup--code markup--li-code\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/codeplanet.io\/javascript-apply-vs-call-vs-bind\/\">bind<\/a><\/code>\u200a\u2014\u200aKnow how each of these functions work. Know how to use them. Know what they do to\u00a0<code class=\"markup--code markup--li-code\">this<\/code>.<\/li>\n<li id=\"fcbd\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/codeburst.io\/master-javascript-prototypes-inheritance-d0a9a5a75c4e\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/codeburst.io\/master-javascript-prototypes-inheritance-d0a9a5a75c4e\">Prototypes &amp; Inheritance<\/a>\u200a\u2014\u200aUnderstand that inheritance in JavaScript works through the\u00a0<code class=\"markup--code markup--li-code\">[[Prototype]]<\/code>\u00a0chain. Understand how to set up inheritance through functions and objects and how\u00a0<code class=\"markup--code markup--li-code\">new<\/code>\u00a0helps us implement it. Know what the\u00a0<code class=\"markup--code markup--li-code\">__proto__<\/code>\u00a0and\u00a0<code class=\"markup--code markup--li-code\">prototype<\/code>\u00a0properties are and what they do.<\/li>\n<li id=\"8a4b\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.youtube.com\/watch?v=8aGhZQkoFbQ&amp;t=948s\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.youtube.com\/watch?v=8aGhZQkoFbQ&amp;t=948s\">Asynchronous JS<\/a>\u200a\u2014\u200aUnderstand the event loop. Understand how the browser deals with user input, web requests, and events in general. Know how to recognize and write asynchronous code. Understand how JavaScript is both asynchronous and single-threaded.<\/li>\n<li id=\"299e\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.sitepoint.com\/higher-order-functions-javascript\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.sitepoint.com\/higher-order-functions-javascript\/\">Higher Order Functions<\/a>\u200a\u2014\u200aUnderstand that functions are first-class objects in JavaScript and what that means. Know that returning a function from another function is perfectly legal. Understand the techniques that closures and higher order functions allow us to use.<\/li>\n<\/ol>\n<h3 id=\"cb9b\" class=\"graf graf--h3 graf-after--li\">More Resources<\/h3>\n<p id=\"f258\" class=\"graf graf--p graf-after--h3\">If the links included aren\u2019t enough, there are countless resources out there to help you learn these concepts.<\/p>\n<p id=\"5e06\" class=\"graf graf--p graf-after--p\">I personally created\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/www.educative.io\/collection\/5679346740101120\/5707702298738688?authorName=Arnav%20Aggarwal\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.educative.io\/collection\/5679346740101120\/5707702298738688?authorName=Arnav%20Aggarwal\">Step Up Your JS<\/a>\u00a0to help people get experience with these topics. It covers all of these concepts and more.<\/p>\n<p id=\"7f82\" class=\"graf graf--p graf-after--p\">Here are other resources which I\u2019ve read or watched at least some of and can recommend.<\/p>\n<ul class=\"postList\">\n<li id=\"7551\" class=\"graf graf--li graf-after--p\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/github.com\/getify\/You-Dont-Know-JS\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/github.com\/getify\/You-Dont-Know-JS\">You Don\u2019t Know JS<\/a><\/li>\n<li id=\"c3ba\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"http:\/\/javascriptissexy.com\/16-javascript-concepts-you-must-know-well\/\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/javascriptissexy.com\/16-javascript-concepts-you-must-know-well\/\">JavaScript is Sexy<\/a><\/li>\n<li id=\"c17e\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/www.javascript.com\/resources\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/www.javascript.com\/resources\">javascript.com<\/a><\/li>\n<li id=\"9ab7\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"https:\/\/frontendmasters.com\/\" target=\"_blank\" rel=\"noopener\" data-href=\"https:\/\/frontendmasters.com\/\">Frontend Masters<\/a><\/li>\n<li id=\"ce42\" class=\"graf graf--li graf-after--li\"><a class=\"markup--anchor markup--li-anchor\" href=\"http:\/\/eloquentjavascript.net\/\" target=\"_blank\" rel=\"noopener\" data-href=\"http:\/\/eloquentjavascript.net\/\">Eloquent JavaScript<\/a><\/li>\n<\/ul>\n<p id=\"9c7c\" class=\"graf graf--p graf-after--li\">Good luck on your interviews.<\/p>\n<p>&nbsp;<\/p>\n<p>SOURCE:\u00a0<a href=\"https:\/\/codeburst.io\/10-javascript-concepts-you-need-to-know-for-interviews-136df65ecce\"><strong>https:\/\/codeburst.io\/10-javascript-concepts-you-need-to-know-for-interviews-136df65ecce<\/strong><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Written by<\/p>\n<div class=\"u-tableCell\"><a class=\"link u-baseColor--link avatar\" dir=\"auto\" title=\"Go to the profile of Arnav Aggarwal\" href=\"https:\/\/codeburst.io\/@arnav_aggarwal?source=footer_card\" aria-label=\"Go to the profile of Arnav Aggarwal\" data-action-source=\"footer_card\" data-user-id=\"b8917b02e038\" data-collection-slug=\"codeburst\"><img decoding=\"async\" class=\"avatar-image avatar-image--small alignleft\" src=\"https:\/\/cdn-images-1.medium.com\/fit\/c\/60\/60\/1*T-uWenw4iz99fqal9CkG1A.png\" alt=\"Go to the profile of Arnav Aggarwal\" \/><\/a><\/div>\n<div class=\"u-tableCell u-verticalAlignMiddle u-breakWord u-paddingLeft15\">\n<h3 class=\"ui-h3 u-fontSize18 u-lineHeightTighter u-marginBottom4\"><a class=\"link link--primary u-accentColor--hoverTextNormal\" dir=\"auto\" title=\"Go to the profile of Arnav Aggarwal\" href=\"https:\/\/codeburst.io\/@arnav_aggarwal\" rel=\"author cc:attributionUrl\" aria-label=\"Go to the profile of Arnav Aggarwal\" data-user-id=\"b8917b02e038\" data-collection-slug=\"codeburst\">Arnav Aggarwal<\/a><\/h3>\n<p class=\"ui-body u-fontSize14 u-lineHeightBaseSans u-textColorDark u-marginBottom4\">Full-Stack Developer<\/p>\n<\/div>\n<div class=\"u-tableCell \"><a class=\"link u-baseColor--link avatar avatar--roundedRectangle\" title=\"Go to codeburst\" href=\"https:\/\/codeburst.io\/?source=footer_card\" aria-label=\"Go to codeburst\" data-action-source=\"footer_card\" data-collection-slug=\"codeburst\"><img decoding=\"async\" class=\"avatar-image u-size60x60 alignleft\" src=\"https:\/\/cdn-images-1.medium.com\/fit\/c\/60\/60\/1*mNmxddJJTzkiBfK77mWuGA.png\" alt=\"codeburst\" \/><\/a><\/div>\n<div class=\"u-tableCell u-verticalAlignMiddle u-breakWord u-paddingLeft15\">\n<h3 class=\"ui-h3 u-fontSize18 u-lineHeightTighter u-marginBottom4\"><a class=\"link link--primary u-accentColor--hoverTextNormal\" href=\"https:\/\/codeburst.io\/?source=footer_card\" rel=\"collection\" data-action-source=\"footer_card\" data-collection-slug=\"codeburst\">codeburst<\/a><\/h3>\n<p class=\"ui-body u-fontSize14 u-lineHeightBaseSans u-textColorDark u-marginBottom4\">Bursts of code to power through your day. Web Development articles, tutorials, and news.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-Learning There are thousands of self-taught JavaScript programmers looking for web development positions. Unfortunately, self-learning often leaves gaps in people\u2019s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":83,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[12,48,44,47,29],"tags":[],"class_list":["post-811","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloghassler-ec","category-front-end","category-javascript","category-medium","category-programacion"],"_links":{"self":[{"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/posts\/811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/comments?post=811"}],"version-history":[{"count":1,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/posts\/811\/revisions"}],"predecessor-version":[{"id":812,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/posts\/811\/revisions\/812"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/media\/83"}],"wp:attachment":[{"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/media?parent=811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/categories?post=811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hassler.ec\/wp\/wp-json\/wp\/v2\/tags?post=811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}