@lesonky
2017-10-09T03:16:57.000000Z
字数 2183
阅读 884
面试题
追问,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 = 10
function 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});