title: 一次不错的面试经历
date: 2017-08-25 15:50:56
tags: 学习
面试中的问题
面试官的问题都是很常规的问题,但是自己回答的还是欠妥。好多基础知识都不扎实,其次还有一个原因就是平时不怎么看面试题,如果多看看效果肯定更好。
数据类型
js中的数据类型:基本数据类型,引用类型巴拉巴拉的。
typeof
这个问题刚学js的时候一直遇到,但是老实说没去看过,因为觉得没什么用。哈哈,typeof 方法能 返回的类型只有这么几种。这个题阵亡了
查了一下MDN
Undefined "undefined"
Null "object" (见下方)
Boolean "boolean"
Number "number"
String "string"
Symbol (ECMAScript 6 新增) "symbol"
宿主对象(由JS环境提供) Implementation-dependent
函数对象 ( [[Call]] 在ECMA-262条款中实现了) "function"
任何其他对象 "object"
css盒子模型
就说了一下content,padding,margin啥的,然后w3c标准和ie下的不同。面试官不置可否,也不知道答案
闭包
老问题了,聊了一下垃圾回收机制,将内部函数传递到所在词法作用域以外的地方,这个函数会保持对当前作用域的引用,这个作用域就不会被回收
splice的第三个参数
好吧,平时就知道第一个第二个,第三个不知道.
注意区分和slice的区别,slice没有side effect
let arr = [1,2,3,4,5,6,7,8]
arr.splice(1,2,2222,33333,44444,5555) //[2, 3]
arr // [1, 2222, 33333, 44444, 5555, 4, 5, 6, 7, 8]
表单中disable和readonly 表单中disable和readonly区别
之前都是直接去react的,调用一下antd的api,这方面实在是欠缺,说出来可笑。都没听说过readonly!!!
dom事件
原生dom事件写过,但是没有遇到过冒泡问题,无赖网上都在说,能答出来但是不知道干嘛用。就写过stopPropagation和event.preventDefault()之类的
cookie和localstorage区别等
这个问题一直都有注意
cookie
- 让http有状态,http本来是没有状态的,每次请求都会传到后端,一般是放个人的信息,可以用来做一些鉴权操作
- cookie很小,存的东西有限
- cookie的expire time,可以设置有效时间,不设置就是浏览器关闭就清除
localStorage
- 顾名思义,浏览器本地仓库,空间大,和sessionStorage的区别在于,local不清理会一直存在,session每次关闭就清理。
- <a href = 'https://www.zhihu.com/question/19786827'>注意区分前端的sessionStorage和后端session机制的不是一个概念</a>
函数申明2种方式的区别
js里面的申明提前,编译阶段会把申明全部拿到最前面,赋值操作在执行阶段。
如果没记错的话,函数申明优先级在变量申明前面。
console.log(funcA('a')) // 报错funcA is not a func
console.log(funcB('b')) // 报错funcB is not defined,let 没有变量提升
console.log(funcC('c')) // c,函数申明优先提前
var funcA = function(...args){
console.log(args)
}
let funcB = function(...args){
console.log(args)
}
function funcC(...args){
console.log(args)
}
var funcC = 1
funcC('ccc') // 报错,对变量funcC重新赋值了,funcC已经不是函数了
定义一个不含有原型链上方法的对象
通过null继承过来的,什么属性和方法都没有
object.create(null)
看看别人说的吧,不一定准确</a>
css画一个三角形,圆形平行四边形等
#triangle-up {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
手写正则
都是比较基础的,qq邮箱,数字字母组合等
/^[a-zA-Z\d]$/
/^[0-9]{5,12}/@qq.com$/
总结
深刻体会到基础太差了,有些问题脱离了应用场景,但是确实是不错的面试题。
写这个博客是为了记录这些问题,也是为了记住自己的不足。
最后面试官说了一下英文口语需要锻炼。这个短期还是放下吧