美文网首页
在javascript面试中,你必须要知晓的10个概念(译)

在javascript面试中,你必须要知晓的10个概念(译)

作者: ITgecko | 来源:发表于2018-01-30 14:24 被阅读0次

    前言

    • 这是根据一篇英文博客翻译而来的,有的地方是根据自己的语言来解释的,有的地方可能翻译的不太准确,括号里的内容一般为我自己在原内容上进行的一些补充或延伸。

    原文地址(英)

    自我学习

    • 这里有成百上千的人希望找到一份工作而去学习javascript和web开发。通常,有的人在自学的过程中会对javascript语言本身的理解不够透彻,从而留下很多空白。
    • 事实上令人惊讶的是,写出一个复杂网页所并不需要非常多语言方面的知识。而有的人独立开发整个网站的过程中,并没有掌握到javascript的原理知识。
    • 避免使用复杂的语言应用,而只是用最基础的技巧来实现功能现象是非常简单的。同样的,依赖Stack Overflow上的答案代码来构建网站也很简单,尽管你可能并没有彻底理解你在网上复制的代码。

    面试

    • 有一个问题在于,如何测试你对js的掌握能力,通常仅限于各个公司面试时提出的那些面试题。当一个求职者,刷了很多面试题,为了面试题做了充分的准备,可能他很快就知道了那些面试题的答案,尽管他可能并没有扎实的javascript语言基础。
    • 下面会列举一些web前端面试中经常会提到的概念。这里假设你已经掌握了javascript的语言基础,比如函数、闭包、回调等等。

    概念

    1. 值和引用——掌握对象、数组、函数是作为引用来传递的;而基础类型是按值传递的。(理解变量类型以及值传递和引用传递的区别)
    2. 作用域——理解全局作用域、函数作用域和块作用域的区别。知道在哪些地方可以使用哪些变量,理解javascript引擎是如何执行变量查找的。(在es6加入let、const之后又会对作用域产生什么影响呢?)
    3. 变量提升——理解变量提升和函数提升的概念,会被提升到当前作用域的底部。知道函数表达式并不会提升。(知道es6加入let、const之后不能提升变量了,以及暂时性死区的概念)
    4. 闭包——知道函数如何使创建时的作用域可以一直访问。知道这个特性可以让我们做什么,比如:隐藏数据、缓存数据、动态生成函数等等。
    5. this——理解this绑定的规则。知道它是如何工作的,知道在函数里的this指向的谁/和谁等价。(es6加入箭头函数后,this在箭头函数里有何变化)
    6. new——理解new关键字是如何和面向对象编程关联起来的。知道调用new关键字时,具体发生了些什么。知道new关键字是如何生成一个对象,以及如何继承构造函数的prototype的。(引入class概念后,实例化一个class以及继承一个class和object对象有什么区别吗)
    7. apply、call、bind——知道如何使用这几个函数,理解他们的工作原理,知道他们对this做了什么。
    8. 原型和继承——明白js中的继承是通过原型链来实现的。知道如何应用对象和函数来建立继承关系,并用new关键字帮助我们实现继承。知道proto和prototype是干嘛的,他们有什么用。
    9. 异步js——理解事件循环。知道浏览器一般是如何来处理用户输入、网络请求以及event事件的。知道如何组织并正确地使用异步js代码。明白JavaScript既是异步的,又是单线程的。(理解事件队列的概念,知道promise、generator的用法)
    10. 高阶函数——明白函数是JavaScript语言里的一等公民,并知道这意味着什么。理解从一个函数里返回另一个函数是完全合法的。知晓我们能通过闭包和高阶函数所能应用的技巧。(这里的概念有点抽象,感觉只能意会不可言传)

    相关文章

      网友评论

          本文标题:在javascript面试中,你必须要知晓的10个概念(译)

          本文链接:https://www.haomeiwen.com/subject/nkqlaxtx.html