【IMWeb秋招训练营】【Day3】面试题总结

经典面试题

9.在Javascript中什么是伪数组?如何将伪数组转化为标准数组?
  • 具有length属性
  • 按索引方式存储数据
  • 不具有数组的push( )、pop( )方法
  • 这种对象有很多,比较特别的是function内的arguments对象,还有像调用getElementsByTagName, document.childNodes之类的,它们都返回的NodeList对象都属于伪数组,也称为类数组,还有自定义的对象,也属于伪数组
  • 可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象。
10.浏览器本地存储?
  • cookie:存储空间小,存储类型简单,消息会被发送到服务器
  • sessionstorage:针对一个 session 来存储数据(当关闭浏览器标签页时数据会丢失)
  • localstorage:存储没有截止日期的数据,浏览器被关闭时数据不会被删除
11.线程与进程的区别?

线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。

12.请说出三种减少页面加载时间的方法。
  1. 减少http请求(合并文件、合并图片)
  2. 优化图片文件,减小其尺寸,特别是缩略图,一定要按尺寸生成缩略图然后调用,不要在网页中用resize方法实现,虽然这样看到的图片外形小了,但是其加载的数据量一点也没减少。普通图像、icon也要尽可能压缩后,可以采用web图像保存、减少颜色数等等方法实现。
  3. 图像格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)
  4. 压缩JavaScript、CSS代码:一般js、css文件中存在大量的空格、换行、注释,这些利于阅读,如果能够压缩掉,将会很有利于网络传输。
  5. 服务器启用gzip压缩功能:将要传输的文件压缩后传输到客户端再解压,在网络传输 数据量会大幅减小。在服务器上的Apache、Nginx可直接启用,也可用代码直接设置传输文件头,增加gzip的设置,也可从 负载均衡设备直接设置。不过需要留意的是,这个设置会略微增加服务器的负担。服务器性能不是很好的网站,要慎重考虑。
  6. 标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。 当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。)
  7. 网址后面加上“/”:对服务器而言,不加斜杠服务器会多一次判断的过程,加斜杠就会直接返回网站设置的存放在网站根目录下的默认页面。

思考题:

5.在链接中应该使用诸如“Click here” 一类的笼统词汇吗?

正方:
事实证明,“Click here”比描述性的链接更容易获得点击,因此应该使用该词汇以获得更好的点击率。
反方:
“Click here”一类的链接损害Web的易用性,用户在点击之前,只能通过周围的上下文关系猜测这个链接是做什么的。QualITy guidelines建议,任何链接文字都应该明确描述该链接的目的。
和事佬:
为了提高站点的易用性,可访问性和SEO性能,应该始终使用描述性链接。很有趣听到有人说“Clickhere”比描述性链接可以获得更多点击率,不知道那些点击进来的人是不是看两眼就离开了。

6.链接是否应该在新窗口打开?

正方:
外部链接应该始终从新窗口打开,当你浏览一个站点的时候,点击了一个链接,却被带到另外一个站点,你在这个站点的会话也因此丢失,这实在令人恼怒。因此,站点内的链接可以在现有窗口打开,而站点外链接则应该在新窗口打开。
反方:
作为Web设计师,我们不该控制用户的行为,一个链接是否在新窗口打开,应该是用户自己的选择。剥夺用户的控制权,在用户的桌面上打开一堆窗口或标签,这才是真正让人恼怒的事。如果用户想打开新窗口,他们可以自己选择,而对非熟练用户,新窗口让他们丢失了“后退”按钮更让他们无所适从。
和事佬:
总体来讲,应该避免使用新窗口打开链接,但在某些场合,如打开购物车中的帮助链接,打开一个非html文件(如PDF文件),应该使用新窗口。为了提高易用性,最好在需要打开新窗口的地方,用一个小图标提示一下。

你可能感兴趣的:(【IMWeb秋招训练营】【Day3】面试题总结)