最近几次面试中遇到的一些常见但是容易被忽略的问题,记录一下:
1、原始类型中的 null ,使用 typeof 得出的结果是什么?为什么?
typeof null 结果是 object。这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了。现在,null 被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。参考资料:https://www.w3school.com.cn/js/pro_js_primitivetypes.asp
2、null 和 undefined 的区别
3、vue 权限管理的
这个问题每个人处理的方式不一样,但我觉得面试官可能想听到的是基于 vue-router 路由守卫的一些知识。
4、js的异步实现
这里包含了对js执行过程的理解,多了解js的事件循环机制即可。参考文档:https://www.cnblogs.com/cangqinglang/p/8967268.html
需要提醒的是,这里面涉及到的堆栈,和传统意义上所理解的堆栈可能有一些区别。
5、vue的响应式原理和双向绑定的原理
这个问题都问烂了,涉及到vue的面试必问。
好好看一下 Object.defineProperty,理解这个概念的基础部分很简单,参考文档:MDN
-- 2022.04.05 更新
6、vue 组件中data为什么是一个函数
因为组件是可复用的,如果直接使用对象,实际上使用的是同一个内存地址中的数据,在某个组件中数据发生变化时,其他组件也会被改变,所以需要为每个组件的data创造一个独立的作用域,而function可以做到这一点