面试时候可以问的问题集锦

Posted tangjiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试时候可以问的问题集锦相关的知识,希望对你有一定的参考价值。

1,javascript中new一个实例时候有哪几步,或者发生了什么?
答:第一步,创建一个空对象,将对象的__proto__属性指向构造函数的prototype对象;第二步:改变this指向;第三步:返回该对象。

2,什么是javascript的事件循环?

答:javascript是单线程的,需要一个任务队列来管理任务事件,同步任务在主线程执行,异步任务一般是放在任务队列中等待执行,只有主线程的同步任务执行完毕后,才会去执行任务队列里面的任务,这个操作是重复去读取直到所有任务队列中事件读取执行完毕。

3,观察者模式和发布-订阅者模式的区别?

答:观察者模式的主体目标和观察者之间存在耦合的,即目标主体一直保持对观察者的记录,而发布-订阅者模式是通过中介者进行事件的管理的,发布者和订阅者互相不知道对方的存在,大多情况观察者模式是同步的,而发布-订阅者使用的是消息队列模式,处理异步事件。

4,项目中是如何处理跨域问题的?

答:跨域问题来源于浏览器的同源策略限制(协议+域名+端口号),跨域就是请求其他域的资料,浏览器会拦截请求,其实是拦截返回,如何跨域请求呢?方法JSONP,其实就是利用script标签的src可以请求第三方的js脚本,只不过请求时候带个callback参数给服务器,告诉服务器我要在自己的页面执行哪个函数,服务器把返回数据放在callback的参数中,当异步加载js脚本时候,执行了之前写好的callback参数。JSONP请求只至支持GET请求。
还有就是让后台改Access-Control-Allow-Origin参数为你请求的url,或者*,表示允许所有其他域访问你的服务器,这种在开发阶段是可以,使用的是CORS跨域策略,对于非简单请求会有一个Options的预检查机制。

再就是前端配置nginx反向代理了,这个比较常见,或者node搭建个反向代理,其实就是location的替代,使用/api替代了后台的请求url,在本地就看起来不存在跨域了。

5,JS的基本类型保存在哪里?引用类型保存在哪里?

答:基本类型保存在栈(stack)内存中,引用类型保存在堆(heap)内存中。

6,form表单的提交有没有跨域问题存在?为什么?

答:不存在跨域,我觉着根本原因是:表单提交不是从脚本发起的,而且form提交是发请求,而不是获取数据,此时浏览器觉着不存在安全问题,跨域问题应该是浏览器拦截了响应而已,请求是成功的。

一般浏览器会限制从脚本发起的跨域HTTP请求,而form表单提交不是脚本发起的,浏览器认为是安全的。可以从这方面回答。

7,js闭包的用处有哪些?

答:(1)封装变量,将不需要暴漏在全局的变量封装成私有变量。(2)for循环的变量封闭在闭包环境中,不被外界环境改变。(3)补充。。。。。

8,移动端1px的适配问题是怎么回事?怎么解决的?

答:移动端1px问题是由于retina视网膜屏幕的像素比不是1造成的,像素比是1的设备,1个css像素就是一个物理像素,一般iphone手机的像素比会大于1,一般是2或者3,那么1px对象就是2或者3个物理像素了,看起来会变粗,解决方案就是在meta标签里面设置scale系数,手淘的那个flexible.js就是那个原理,因为实际是可以获取像素比系数,从而算出meta里面的scale系数的。

9,

 

【未完待续】



以上是关于面试时候可以问的问题集锦的主要内容,如果未能解决你的问题,请参考以下文章

Java面试时,面试官常问的问题

留学美国常见面试问题都有哪些

面试官95%会问的接口测试知识

这道面试必问的JVM面试题70%的Java程序员会做错

深入解析面试常问的Java 接口与抽象类问题

面试oracle 经常问的一个问题- 事务