很多公司在面试中会考察你对 JS 的理解. 一个知识丰富的求职者可以很快地回答这些问题, 但是他对语言的理解并不深刻.
今天我们就来说说一些 web 开发面试中经常被问到的概念. 不过理解这些概念的前提是你已经掌握了基本知识, 比如循环, 函数和回调函数.
这里还是要推荐下小编的 Web 前端学习群: 867726593, 不管你是小白还是大牛, 小编我都欢迎, 不定期分享干货, 包括 小编自己整理的一份最新的 Web 前端资料和 0 基础入门教程, 欢迎初学和进 阶中的小伙伴. 在不忙的时间我会给大家解惑
概念
1, 作用域- 了解全局作用域, 函数作用域及块作用域的不同. 了解变量的作用范围. 知道 JavaScript 引擎如何查找变量.
2, 原型 & 继承-了解 JavaScript 的继承是通过 [[Prototype]] 实现的. 了解如何通过函数及对象建立继承并通过 new 实现继承. 理解__proto__ 及 prototype 的属性以及作用.
3, 数值类型 vs. 引用类型- 了解如何复制对象, 数组和函数以及如何将它们传递到函数中. 知道引用类型复制的是什么. 了解原始值是通过复制值来复制及传递的.
4, 声明提升-了解变量和函数声明会被提升到可用范围的顶部. 了解函数表达式不会被提升.
5, 闭包-知道函数内部创建的函数可以访问该函数的作用域. 知道这种方式允许我们做什么, 比如数据隐藏, 记忆以及动态函数变换.
6,this-知道 this 绑定的原则. 知道它的工作原理, 在函数中指代的内容以及为什么有用.
7, 高阶函数-了解 JavaScript 中的函数是第一类对象以及它的意义. 知道从另一个函数返回函数是完全合法的. 了解闭包及高阶函数允许使用的技术.
8,new-知道它与面向对象编程的关系. 知道使用 new 调用的函数发生了什么. 了解使用 new 生成的对象是如何从函数的原型继承的.
9,apply, call, bind-知道每个函数是如何工作的. 知道如何使用它们. 知道它们对 this 做什么.
10, 异步的 JS-了解事件循环. 理解浏览器如何处理一般的用户输入, 网络请求以及事件. 知道如何正确认识和实现异步代码. 了解 JavaScript 是异步的和单线程的.
来源: http://www.jianshu.com/p/7aab7e18e5ee