前端面试问题

1、闭包:
设计私有的方法和变量,优点:避免被全局变量污染  缺点:常驻内存,会增加内存使用量,使用不当易造成内存泄漏。
其3个特性:1)函数嵌套函数
                  2)函数内部可以引用外部的参数和变量
                  3)参数和变量不会被垃圾回收机制回收
2、谈谈cookie弊端
cookie虽然在持久保存客户端数据提供了方便,分担了服务器储存的负担,但还是有很多局限的:
1)每个特定的域名下最多生成20个cookie(IE6或更低版本最多20个,IE7后的版本最多可以有50个,firefeox最多50个,chrome和Safari没有做硬性限制。)
IE和Opera会清理最近最少使用的cookie,Firefox会随机清理cookie。
cookie的最大大约为4096个字节,为了兼容习性一般不超4095个字节。


3、页面优化
1)页面级别的优化:HTTP请求数、脚本的无阻塞加载、内联脚本的位置优化
   每个请求都是需要成本的,既包含时间成本也包含资源成本。一个完整的请求都需要经过DNS寻址、与服务器建立连接、发送数据等待,服务器响应,
   1、减少HTTP请求数主要途径包括:
   1)从设计实现层面简化页面
   2)合理设置HTTP缓存
   3)资源合并和压缩(将外部的脚本、样式进行合并,多个合为一个。css,js,image都可以用响应的工具进行压缩,能省下不少空间)
   4)css sprites(合并css图片,可减少请求数)
   5)Inline Images
   6)Lazy Load Image
   2、将外部脚本置底
(浏览器可并发请求、可更快加载资源,但是外链接在加载时会阻塞其他资源,如果放在靠前的位置则会影响后面的图片、样式、其他脚本的加载,所以适合放在靠后位置)
    3、异步执行inline脚本
(  inline脚本比外部脚本,一样会阻塞并发请求,除此外,inline脚本在页面渲染前执行,则渲染工作会被推迟,即页面处于空白状态。(浏览器在页面处理方面是单线程的))
    4、Lazy Load Javasript(一种是为流量特大的页面定制专用的mini版框架;另一种是Lazy load  ,最初只加载核心模板,其他模板等需要时再加载)
    5、将CSS放在head中
(能在页面渲染时,避免浏览器还没解析到css就开始渲染页面,从无css状态到有css状态,用户体验差;一些浏览器等下载好css才开始渲染,css靠下位置会导致渲染时间推迟。)
     6、异步请求Callback
    (异步加载,可在Domloaded事件触发时加载,或使用setTimeout方式灵活控制加载时机)
     7、减少不必要的HTTP跳转
     8、避免重复的资源请求

2)代码级别的优化:js中的DOM操作优化、CSS选择符优化、图片优化以及HTML结构优化等

(1). DOM
(2). 慎用with
(3). 避免使用eval和Function
(4). 减少作用域链查找
(5). 数据访问
(6). 字符串拼接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值