<转>2016暑假实习中科院笔试

原文地址: http://www.cnblogs.com/jtjds/p/5339018.html

第一:首先基本上是,基于你的简历进行初步的了解

1:询问我的github上的项目,是不是自己做的,怎么做的,问了一下那个九宫格游戏,那个是fork别人的,然后他问我自己有没有研究?,那个项目有bug,我就实话实说,然后他问我哪里有bug,如何解决bug,问题出在哪里,,霹雳啪啦,霹雳啪啦。。。。。。。

2:看到我上面写考了会计证,问我是不是有从事金融的打算,学习成绩怎么样?排名如何?这个金融的问题,真是没想到,还以为他们要我去搞金融,原来担心我方向不明确,我说,自己只是想扩展一下各方面的知识,多学点东西对自己总是好的,主要还是从事web前端开发,热爱前端。。。。。。啥啥啥的。。。。

3:针对我的网页简历,提出了一个非常好的问题,网页简历用到了3d模型,从正面看的,问我如果从背面看会产生什么问题?因为我那个是用图片渲染的,图片上面加了文字,问我如果,不要图片,只用文字,实现怎么搞?这个我知道,就霹雳啪啦,霹雳啪啦。。。。。。。的说了一堆。

4:问我对最新前沿的技术有没有什么了解?比如说node.js,我只了解一点点,就说,对于现在的自己,目前太高深的问题不太适合,还是以基础为主。。。。。啥啥啥的。

5:问到考研的问题?问我大三怎么不去考研?

6:问我,自己对学习前端有没有什么规划,主要学习那些?前沿的技术是否了解?。。。。。啥啥啥的。。。。。。。。

7:问我阿里云ECS是怎么弄的,备案怎么搞得,配置环境啊,,是不是都是自己搞得还是一起弄得?我都是自己一个人琢磨出来的。。霹雳啪啦,噼里啪啦。。我说了一堆,跟他讲了一堆,。。,啥啥啥的。。。。。。

8:问我对于WEB UI有什么看法?扯到曾经实习软件公司的经历,在实习公司做了什么,用什么做的?

好吧!上面那些看似不够高大上,其实还是很考验一个人的反应能力的,说错了话,结果就可想而知。。。。。感觉每个问题都在考验我的反应能力。

第二:专业问题

1:如何检测一个变量是字符串?如何检测为对象类型呢?

1:使用typeOF检测字符串    var str;
    alert(typeOf  str)             

2:给测试变量加上一个空白字符,然后与测试变量做全等判断,就可以得出这个变量是否是字符串。  <script type="text/javascript">        var str=‘ss‘;        var stt=str+‘‘;        alert(str==stt);   //输出为真  </script

我只知道上面两种,还有其它方法,麻烦给我留言哈!

1:typeof 可以判断function的类型;在判断除Object类型的对象时比较方便。

2:判断已知对象类型的方法: instanceof
alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false
注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

3:根据对象的constructor判断: constructor

alert(c.constructor === Array) ----------> true

alert(d.constructor === Date) -----------> true

alert(e.constructor === Function) -------> true

注意: constructor 在类继承时会出错

eg:

      function A(){};

      function B(){};

      A.prototype = new B(); //A继承自B

      var aObj = new A();

      alert(aobj.constructor === B) -----------> true;

      alert(aobj.constructor === A) -----------> false;

而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true:

      alert(aobj instanceof B) ----------------> true;

      alert(aobj instanceof B) ----------------> true;

言归正传,解决construtor的问题通常是让对象的constructor手动指向自己:

      aobj.constructor = A; //将自己的类赋值给对象的constructor属性

      alert(aobj.constructor === A) -----------> true;

      alert(aobj.constructor === B) -----------> false; //基类不会报true了;

4:通用但很繁琐的方法: prototype:
alert(Object.prototype.toString.call(a) === ‘[object String]’) -------> true;
alert(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true;
alert(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true;
alert(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true;
alert(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true;
alert(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;
大小写不能写错,比较麻烦,但胜在通用。

2:对于页面加载缓慢,如何进行优化,解决途径是什么?--这个我答的不好

我是先讲页面加载缓慢是那些原因造成的,比如:

  A:后端的问题。

一般网页第一个请求是动态请求的概率比较大,如果这个请求特别耗时,那肯定不是前端的责任。

 B:请求过多

数一下瀑布图总共有多少行,onload之前如果有几百行,那么请求就太多了。一下子加载那么多资源造成拥挤。css,

js该合并的合并,图标该精灵的精灵,使用字体图标也很好。还有,有些不重要的东西不用放到onload之前加载,

放到后面也一样。  网页发请求数越少越好。

比如:HTML的话可以从script标签这里说,比如动态加载script标签,异步加载script标签(IE:defer、标准:async)

还有就是css阻塞和js阻塞问题,将script标签放置于</body>之前就可以,行为层与变现层进行分开。

C:某一个部分请求的时间花费过长。

请求比其他请求的时间大出一个数量级,这种情况一般是因为某一个资源太慢了,导致网页整体变慢,资源慢的原因可能是:

a)资源在第三方站点上,他们很慢;

b)这个资源太大了;

c)这个 资源使用的域名有问题。

D:网络问题

  仔细看一下一个单独的http请求,他们会分为好几段,分别是域名解析、建立连接、发送请求、等待响应和接收数据几个阶段。理论上域名解析和建立连接应该占用的时间很小才对,主要的时间应该用在后面几个阶段上。上图中,浅灰色和灰色分别代表域名解析和建立连接。可以看出这两个请求中花费在网络层上的时间太长了,超过总时间的一半还要多。网络层时间过长除了可能和底层网络有关之外,还可能和站点的服务端性能有关(后端RD的事情哦)。当然,如果这种情况发生在向第三方站点发送的请求上(实际上也经常发生),建议取消或者更换某些站点功能从而避免这样的请求了。

E:接收数据时间过长

上面说了,http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了

长到数百毫秒甚至以秒计算的时候。那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。

这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等 手段来解决。

  还有像CSS Sprites,合并CSS文件等方案。

F:js阻塞请求

     

     

      图中两个连续的请求之间出现了一个很大的空隙,为啥会出现这个空隙呢?是因为写的js性能有问题,解析执行js花了很

长时间,导致这段时间的资源加载都被阻塞住了。

G:如果以上都没有

   

    翻看每个http请求,仔细研究每个请求头响应头,看看是不是没有设置缓存啦,图片优化的不够好之类的。可以先找个工具

分析一下,比如:http://speed.mmtrix.com/,问题一目了然。

 

H:采用CDN托管

    CDN的全称是Content Delivery Network,即内容分发网络。CDN的通俗理解就是网站加速,CPU均衡负载,可以解决

跨运营商, 跨地区,服务器负载能力过低,带宽过少等带来的网站打开速度慢等问题。

CDN的基本思路是尽可能避开互联网上有可能影响 数据传输速度和稳定性的瓶颈和环节,使内容传输的更

快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。

    CDN 系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合

信息将用户的请求重新导向离用户最近的服务节点上。 其目的是使用户 可就近取得所需内容,解决

 Internet网络拥挤的状况,提高用户访问网站的响应速度。

M:利用缓存方案

   服务端缓存是通过将相同数据保存下来,当访问用户请求相同内容时,不再重新去数据库查询数据,而是将之前保存在

服务器的数据响应给用户这样就加快了网站页面加载速度,但是临时保存会占用部分服务器资源。其本质是通过空间换取

时间,提高网页加载速度。页面缓存指的是将用户请求过的页面完整保存下来,有相同请求时直接响应给用户,此方式数

据量是最大的;页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容。

实现页面部分缓存有 两种机制:

第一种:对用户控件进行缓存配置

此种是将页面中需要缓存的部分置于用户控件(.ascx文件)中,并且为用户控件设置缓存功能

(包含用户控件的ASP.NET页面可设置也可不 设置缓存)。

这就是通常所说的“控件缓存”。

主要包括以下3种方法:

一:使用@ OutputCache指令以声明方式为用户控件设置缓存功能,

二:在代码隐藏文件中使用PartialCachingAttribute类设置用户控件 缓存;

三:使用ControlCachePolicy类以编程方式指定用户控件缓存设置。

第二种:“缓存后替换”的方法。

该方法与控件缓存正好 相反,将页面中的某一部分设置为不缓存,因此,尽管缓存了整个页面,

但是当再次请求该页时,将重新处理那些没有设置为缓存的内容。

基本上就问了这么多,还有的记不清了。关于以上问题,大家如果又觉得好的解决方案,麻烦给我留言哈!

时间: 2024-10-10 02:45:46

<转>2016暑假实习中科院笔试的相关文章

&lt;转&gt;2016暑假实习360笔试题

编程题一: 小B最近迷上了字符串处理技术,他设计了各种处理方式,并计算字符串的属性.这次也不例外,他定义了一种新的字符置换方式.小B研究的字符串由ASCII码字母和“.”构成,这次的研究对象是“.”.他关心的对象是字符串中出现的连续两个“.”.若每次操作把其中最开始的连续两个“.”以一个“”替代,则可以将函数f(s) 定义为使得串中不出现连续两个“.”的最小置换次数. 现考虑m个字符替换操作,每次将指定位置的字符替换为给定的字符,求替换后函数f(s)的值. 输入有若干组,每组的第一行为两个整数n

百度2016暑假实习机试题(部分)

第一题. 模拟缓存 理解题意之后直接码代码就可以了.不过在保存缓存的数据结构选择上倒是有小技巧,如果你用普通数组保存,那么在加入新的页面的时候,如果数组还没满,则直接append到最末尾即可:如果缓存已满,则需淘汰第一个页面.淘汰一个旧页面时需要进行的操作是将第二个页面开始到最后一个页面往前覆盖,空出最后一个位置,然后把新页面放在最后一个位置上.这种淘汰的时间复杂度为缓存长度m.有一种改进是直接用队列queue保留缓存的长度.这里我自己使用的小技巧是用几个变量将原来的普通数组改进成一个循环数组的

京东2016暑假实习机试题(部分)

因为没有提前上测试平台,没看清楚机试要求,不知道可不可以切屏到IDE上编程,所以整晚所有编程题都是在京东的oj上做的,本来很简单的题,知道可以用那些思路但是因为不熟模板或者库函数的使用变得举步维艰,结束后自己码一下发现是很简单的. 当时只拍了一道题,为了避开色相头,拍的角度也不好,将就看吧.分析题意就知道,第一行数字为候选人的个数n,第二行数字为n个候选人目前的票数,其中小东的票数为该行的第一个数字. 做法就是,每次将小东的票数跟剩下的n-1个候选人的得票最高的那个比较,如果小东的票数低了,则从

谈谈大三找暑假实习

自2015年4月知道自己保研无望后,就开始积极的找暑假实习机会了,我的第一个笔试是腾讯的软件测试,当时以为测试会比开发简单,所以很傻很天真的去笔试了,结果发现考试卷子80%是上过的课本,剩下的20%是测试题(到大三还没接触过软件测试),现在很后悔在考试前没有好好的复习书本,听说有个师兄在寒假的时候已经积极的准备腾讯的笔试,结果我居然裸考,自然挂掉也是正常的.同时还是很感谢腾讯给的机会,在3月份的时候给了一次模拟考试,但是由于那天没注意和宿舍的妹子去逛街,所以错过了,而后正式考试前天晚上玩的太嗨了

2016暑假多校联合---Windows 10

2016暑假多校联合---Windows 10(HDU:5802) Problem Description Long long ago, there was an old monk living on the top of a mountain. Recently, our old monk found the operating system of his computer was updating to windows 10 automatically and he even can't j

2016暑假多校联合---Substring(后缀数组)

2016暑假多校联合---Substring Problem Description ?? is practicing his program skill, and now he is given a string, he has to calculate the total number of its distinct substrings. But ?? thinks that is too easy, he wants to make this problem more interesti

2016暑假多校联合---Rikka with Sequence (线段树)

2016暑假多校联合---Rikka with Sequence (线段树) Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them: Yuta has an array A with n numbers. Then he make

2016暑假多校联合---Another Meaning

2016暑假多校联合---Another Meaning Problem Description As is known to all, in many cases, a word has two meanings. Such as “hehe”, which not only means “hehe”, but also means “excuse me”. Today, ?? is chating with MeiZi online, MeiZi sends a sentence A to

大二实习生的暑假实习总结

7.19遇到的问题 1.JSONObject =>javabean2.JSONObject.toJSONString() "$ref": "$[19]"  ????[email protected] 的使用4.hibernate 一对多的查询 5.JPA  批量增加 https://www.cnblogs.com/IcanFixIt/p/7042977.html6.JPA  delete遇见的问题 https://www.2cto.com/kf/201611/