-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一些特别棒的面试题[2] #66
Comments
如何成为一名合格的面试官?
|
setTimeout与函数调用栈
输出:1 3 2 |
function foo 与 var foo的提升优先级
输出:function
输出:function function优先级比var高,无论在其前后,都会覆盖掉同名的var声明。 |
let 块作用域 与 setTimeout
输出:
为什么在debug的过程中,打印顺序是混乱的? (等把规范的timers章节翻译完,再来解决)
如果将let替换成var呢?
输出:
|
深入理解Object.prototype.toString.call()为什么Object.toString.call([1,2,3])返回[object Array]?可以直接[].toString()返回[object Array]吗? 那到底是什么原因?
为什么会出现下面的情况?
答案在这里!
Object对象和它的原型链上各自有一个toString()方法,第一个返回的是一个函数,第二个返回的是值类型。 既然知道了不同,现在我们再来分析下 需要注意的是:Math.toString()直接返回"[object Math]"。 实际开发中,我们用到最多的可能是:Object.prototype.toString.call([1,2,3])//"[object Array]"这种。 总结:
那么不可以直接Array.prototype.toString.call([1,3,4])吗?
所以这就是必须用Object.prototype.toString()去检测类型的原因。 至于Object.prototype.toString()内部是怎么实现的,等到时机成熟再去深入。 |
综合考察bind,call和apply的面试题
为什么? 题目一:对象内部方法,调用全局的函数
输出:'1' 拓展:
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this |
由于种种原因,开始了新一轮的面试,这一轮面试可谓收获颇丰。
与各种各样的面试官交流下来,除了收获到一些疏漏的知识点外,发现面试其实非常考验面试官的水平。揣摩出一些如何成为一名合格的前端面试官方法。
以及很重要的老哥的经验:进大厂前必须要做的准备,提前一个月刷题。
The text was updated successfully, but these errors were encountered: