@lesonky
2017-10-09T03:16:57.000000Z
字数 2183
阅读 1037
面试题
追问,ES6加入了一种新的基本数据类型,是什么,有什么用(难)
== 与 === 有什么区别(简单)null 与 undefined 的区别(简单)[[1,2],[3,4],[5,6,7]] 扁平化处理(多种解法,中等)追问:用一行代码实现,多种实现
call 和 apply 的用法及区别(中等)call,apply,bind的区别(中等)追问:
一下代码,控制台会输出什么,为什么?
var a = 10;function b(){var a = 5;console.log(this.a)return function(){console.log(a)}}b()();
var length = 10function fn(){console.log(this.length);}var obj = {length: 5,method: function(fn) {fn();arguments[0]();}}obj.method(fn);
追问:
- 如何解决函数的复制(难)
- 如何解决原型链的复制(难)
["8","13","7","5","4","21","1","6"]按照数字从小到大的顺序排列 (简单)追问:
- 用递归实现(中等)
- 优化递归实现(尾递归,加分)
- 使用curry化将函数变得优雅一些(加分)
$作为变量名,又要使用jQuery,如何避免变量名冲突(简单)追问:
- 与var的区别(中等,细节继续追问)
- 临时死区的概念(中等)
- 对全局变量的影响(细节)
追问:
- 箭头函数中this的指向
- 箭头函数中arguments是否可用
for...in...循环与for...of...循环的区别(难,细节)...操作有哪些用处(中等)追问: 下面的代码,控制台依次输出什么?
function a({a,b} = {a:1,b:2}){console.log(a);console.log(b);}function b({a=1,b=2}){console.log(a);console.log(b);}function c({a=1,b=2} = {a:1,b:2}){console.log(a);console.log(b);}a();a({a:2});a({a:2,b:3});b();b({a:2});b({a:2,b:3});c();c({a:2});c({a:2,b:3});